bam-ticketing-sdk
Version:
SDK for B.A.M Ticketing API
32 lines (26 loc) • 774 B
text/typescript
import { Jwt } from '..'
import { AuthService } from '../auth'
import { RefreshableJwt } from '../auth/types'
import { ICredential, CredentialType } from './credential'
/**
* This class is used to authenticate with an api key.
* This method is currently only used on the NFT service.
* Be aware that, consequently, it will not work on other services.
*/
export class ApiKeyCredentials implements ICredential {
readonly type: CredentialType.ApiKey
private jwt?: Jwt
constructor(apiKey: string) {
this.jwt = { token: apiKey }
}
getToken(): Jwt | RefreshableJwt {
return this.jwt
}
async authorize(_authService: AuthService): Promise<Jwt> {
return this.jwt
}
async refreshToken(): Promise<Jwt> {
// You can't refresh an api key
return this.jwt
}
}