UNPKG

onfido-sdk-ui

Version:

JavaScript SDK view layer for Onfido identity verification

55 lines (46 loc) 1.21 kB
import { currentSeconds } from './index' import type { UrlsConfig } from '~types/commons' import type { EnterpriseFeatures } from '~types/enterprise' type JWT = { exp: number payload: { app: string ref: string } uuid: string enterprise_features: EnterpriseFeatures urls: UrlsConfig } export const parseJwt = (token?: string): JWT => { if (!token) { throw new Error('Token undefined') } const base64Url = token.split('.')[1] const base64 = base64Url.replace('-', '+').replace('_', '/') return JSON.parse(atob(base64)) } export const jwtExpired = (token: string): boolean => { const { exp: expiresAt } = parseJwt(token) return currentSeconds() > expiresAt } export const getUrlsFromJWT = (token: string): UrlsConfig => { const urls: UrlsConfig = {} try { const jwt = parseJwt(token) Object.assign(urls, jwt.urls) } catch (err) { console.error('Invalid token:', err.message) } return urls } export const getEnterpriseFeaturesFromJWT = ( token: string ): EnterpriseFeatures => { try { const jwt = parseJwt(token) return jwt.enterprise_features } catch (err) { console.error('Invalid token:', err.message) return {} } }