kod-temp
Version:
Workano Communications SDK
48 lines (47 loc) • 1.9 kB
JavaScript
import workano from "../../lib/index";
export default class {
static async login(req) {
workano.Auth.init(req.appId, req.tokenExpiration, null, null, req.isMobile ?? false);
workano.Auth.setHost(req.server);
const session = await workano.Auth.logIn(req.username, req.password);
workano.Auth.setOnRefreshToken((newToken, newSession) => {
workano.Auth.setApiToken(newToken);
workano.Auth.setRefreshToken(newSession.refreshToken);
req.onTokenRefreshed(newSession);
});
return session;
}
static async validateToken(req) {
workano.Auth.init(req.appId, req.tokenExpiration, null, null, req.isMobile ?? false);
workano.Auth.setHost(req.server);
try {
let session = await workano.Auth.validateToken(req.token);
if (!session || !session.profile) {
await workano.Auth.logout();
let refreshedSession = await workano.Auth.generateNewToken(req.refreshToken);
if (refreshedSession &&
refreshedSession.profile &&
refreshedSession.refreshToken) {
workano.Auth.setApiToken(refreshedSession.token);
workano.Auth.setRefreshToken(refreshedSession.refreshToken);
return refreshedSession;
}
else {
return null;
}
}
workano.Auth.setOnRefreshToken((newToken, newSession) => {
workano.Auth.setApiToken(newToken);
workano.Auth.setRefreshToken(newSession.refreshToken);
req.onTokenRefreshed(newSession);
});
return session;
}
catch (err) {
return null;
}
}
static async logout() {
await workano.Auth.logout();
}
}