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 { ClientInputInterface } from "cng-client-socket-io";
const socketConfig =
{
APP_NAME: "API-DEMO",
socketLink: {
url: "https://your-domain.com",
path: "/your-base-dir",
timeout: 10000,
userInfoPath: "/your-api-get-user-info",
},
deviceKey: {
id:
"your device id from admin",
key:
"Your device key from admin",
created_time: "your time from admin",
},
isDebug: false,
};
const clientSocket = new ClientInputInterface(
socketConfig.APP_NAME,
socketConfig.deviceKey,
socketConfig.socketLink,
socketConfig.isDebug
);
clientSocket
.getDeviceId().then((deviceId) => {
});
3. Make login page and get javascript form data in event (click)="login()":
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
)
.then((tokenData) => {
if (tokenData.token) {
this.userData = tokenData;
this.loginOk = true;
return tokenData;
} else {
throw new Error("Login Fail!");
}
});
}
4. Login by token saved:
let savedToken = this.apiStorage.read(TOKEN_KEY);
this.client
.loginByToken(savedToken)
.then((tokenData) => {
if (tokenData.token) {
this.userData = tokenData;
this.loginOk = true;
return tokenData;
} else {
throw new Error("Login Fail!");
}
});
5. Register new user:
let userConfig = {
loginUser: {
username: 'your user as phone, email, ldap',
password: 'your pass init'
},
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");
}
})