UNPKG

kod-temp

Version:

Workano Communications SDK

48 lines (47 loc) 1.9 kB
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(); } }