UNPKG

mongodb-stitch

Version:

[![Join the chat at https://gitter.im/mongodb/stitch](https://badges.gitter.im/mongodb/stitch.svg)](https://gitter.im/mongodb/stitch?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

54 lines (53 loc) 2.64 kB
import { Decoder } from "../../internal/common/Codec"; import { Storage } from "../../internal/common/Storage"; import Response from "../../internal/net/Response"; import Stream from "../../internal/net/Stream"; import EventStream from "../../internal/net/EventStream"; import { StitchAuthRequest } from "../../internal/net/StitchAuthRequest"; import StitchRequestClient from "../../internal/net/StitchRequestClient"; import StitchCredential from "../StitchCredential"; import AuthInfo from "./AuthInfo"; import CoreStitchUser from "./CoreStitchUser"; import StitchAuthRequestClient from "./StitchAuthRequestClient"; import { StitchAuthRoutes } from "./StitchAuthRoutes"; import StitchUserFactory from "./StitchUserFactory"; export default abstract class CoreStitchAuth<TStitchUser extends CoreStitchUser> implements StitchAuthRequestClient { authInfo: AuthInfo; protected readonly requestClient: StitchRequestClient; protected readonly authRoutes: StitchAuthRoutes; protected abstract userFactory: StitchUserFactory<TStitchUser>; protected abstract deviceInfo: { [key: string]: string; }; private readonly storage; private currentUser?; private readonly accessTokenRefresher; protected constructor(requestClient: StitchRequestClient, authRoutes: StitchAuthRoutes, storage: Storage, useTokenRefresher?: boolean); readonly isLoggedIn: boolean; readonly user: TStitchUser | undefined; doAuthenticatedRequest(stitchReq: StitchAuthRequest): Promise<Response>; doAuthenticatedRequestWithDecoder<T>(stitchReq: StitchAuthRequest, decoder?: Decoder<T>): Promise<T>; openAuthenticatedEventStream(stitchReq: StitchAuthRequest, open?: boolean): Promise<EventStream>; openAuthenticatedStreamWithDecoder<T>(stitchReq: StitchAuthRequest, decoder?: Decoder<T>): Promise<Stream<T>>; refreshAccessToken(): Promise<void>; loginWithCredentialInternal(credential: StitchCredential): Promise<TStitchUser>; linkUserWithCredentialInternal(user: CoreStitchUser, credential: StitchCredential): Promise<TStitchUser>; logoutInternal(): Promise<void>; readonly hasDeviceId: boolean; protected readonly deviceId: string | undefined; protected abstract onAuthEvent(): any; private prepareAuthRequest; private handleAuthFailureForEventStream; private handleAuthFailure; private tryRefreshAccessToken; private prepUser; private attachAuthOptions; private doLogin; private doLoginRequest; private processLogin; private processLoginResponse; private doGetUserProfile; private doLogout; private clearAuth; close(): void; }