UNPKG

@okta-dfuhriman/okta-auth-js

Version:
78 lines (65 loc) 2.07 kB
/*! * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved. * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.") * * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0. * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and limitations under the License. */ import { UserClaims } from './UserClaims'; export interface AbstractToken { expiresAt: number; authorizeUrl: string; scopes: string[]; pendingRemove?: boolean; } export interface AccessToken extends AbstractToken { accessToken: string; claims: UserClaims; tokenType: string; userinfoUrl: string; } export interface RefreshToken extends AbstractToken { refreshToken: string; tokenUrl: string; issuer: string; } export interface IDToken extends AbstractToken { idToken: string; claims: UserClaims; issuer: string; clientId: string; } export type Token = AccessToken | IDToken | RefreshToken; export type RevocableToken = AccessToken | RefreshToken; export type TokenType = 'accessToken' | 'idToken' | 'refreshToken'; export enum TokenKind { ACCESS = 'accessToken', ID = 'idToken', REFRESH = 'refreshToken', } export function isToken(obj: any): obj is Token { if (obj && (obj.accessToken || obj.idToken || obj.refreshToken) && Array.isArray(obj.scopes)) { return true; } return false; } export function isAccessToken(obj: any): obj is AccessToken { return obj && obj.accessToken; } export function isIDToken(obj: any): obj is IDToken { return obj && obj.idToken; } export function isRefreshToken(obj: any): obj is RefreshToken { return obj && obj.refreshToken; } export interface Tokens { accessToken?: AccessToken; idToken?: IDToken; refreshToken?: RefreshToken; }