cng-client-socket-io
v1.0.4
Published
Client socket for nodejs and for javascript, angular, react, ...
Downloads
3
Readme
this is lib for client login into socket io server
1. Install first for app or web in ionic, angular, react ...
npm i cng-client-socket-io@latest
2. declare in main app such as in app.component.ts
of ionic angular
:
// import class from lib
import { ClientInputInterface } from "cng-client-socket-io";
const socketConfig =
{
// define your app
APP_NAME: "API-DEMO",
// ask admin for link to connect server
socketLink: {
url: "https://your-domain.com",
path: "/your-base-dir",
timeout: 10000,
userInfoPath: "/your-api-get-user-info",
},
// mã khóa được cấp
deviceKey: {
id:
"your device id from admin",
key:
"Your device key from admin",
created_time: "your time from admin",
},
// for debug
isDebug: false,
};
// init client for communicate ....
const clientSocket = new ClientInputInterface(
socketConfig.APP_NAME,
socketConfig.deviceKey,
socketConfig.socketLink,
socketConfig.isDebug
);
//......
// waiting for device ready for login button
clientSocket
.getDeviceId().then((deviceId) => {
// this.isDeviceOk = deviceId;
// device ready for login buton view
});
// now `clientSocket` is object for loginByUser, register, loginByToken,...
// set clientSocket for service make login
3. Make login page and get javascript form data in event (click)="login()":
// form login has username and password when user input
login(form) {
let formData = form.value;
if (!this.client) {
return Promise.reject("No client socket!")
}
return this.client
.loginByUser(
formData.username,
"email",
formData.password,
1 // num of date of expired
)
.then((tokenData) => {
// login ok
if (tokenData.token) {
this.userData = tokenData; // {token,deviceId,userInfo} from server
this.loginOk = true;
return tokenData;
} else {
throw new Error("Login Fail!");
}
});
}
4. Login by token saved:
let savedToken = this.apiStorage.read(TOKEN_KEY);
// login by token:
this.client
.loginByToken(savedToken)
.then((tokenData) => {
// login ok
if (tokenData.token) {
this.userData = tokenData; // {token,deviceId,userInfo} from server
this.loginOk = true;
return tokenData;
} else {
throw new Error("Login Fail!");
}
});
5. Register new user:
// Make connection in step # 2. and make register form for input:
let userConfig = {
loginUser: {
username: 'your user as phone, email, ldap',
password: 'your pass init' // remember yours
},
userInfo: {
nickname: "Your nick name"
, fullname: "Your full name"
, address: "Your address"
, phone: "Your phone"
, email: "your email @ domain.dn"
}
}
client.registerUser(
userConfig.loginUser.username
, userConfig.loginUser.password
, userConfig.userInfo
)
.then(tokenData => {
if (tokenData.userInfo) {
console.log("successful", tokenData);
} else {
console.log("user exist! and your pass not true");
}
})