Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | 1x 1x 1x 1x 7x 7x 7x 7x 2x 5x 7x 7x 7x 1x 6x 2x 6x 2x 2x 2x 2x 2x 10x 7x 7x 7x 7x 7x 1x | import SdkAuth, { TokenProvider } from '@commercetools/sdk-auth'; import { Token, ApiConfig } from '../../types/setup'; import { FlowOptions } from '../../types/Api'; import { getSettings } from './../../index'; import { isTokenActive, isTokenUserSession } from './../token'; const createAuthClient = (config: ApiConfig): SdkAuth => new SdkAuth({ host: config.authHost, projectKey: config.projectKey, disableRefreshToken: false, credentials: { clientId: config.clientId, clientSecret: config.clientSecret }, scopes: config.scopes }); const getCurrentToken = (Ioptions: FlowOptions = {}) => { const { currentToken } = getSettings(); if (currentToken) { return currentToken; } return options.currentToken; }; const getTokenFlow = async (sdkAuth: SdkAuth, Ioptions: FlowOptions = {}) => { const currentToken = getCurrentToken(options); if (options.customerCredentials) { return sdkAuth.customerPasswordFlow(options.customerCredentials); } if (options.requireUserSession && !isTokenUserSession(currentToken)) { return sdkAuth.anonymousFlow(); } if (currentToken) { const tokenActive = await isTokenActive(sdkAuth, currentToken); Eif (tokenActive) { return Promise.resolve(currentToken); } } Iif (options.requireUserSession) { return sdkAuth.anonymousFlow(); } return sdkAuth.clientCredentialsFlow(); }; const createAccessToken = async (options: FlowOptions = {}): Promise<Token> => { const { api } = getSettings(); const sdkAuth = createAuthClient(api); const tokenInfo = await getTokenFlow(sdkAuth, options); const tokenProvider = new TokenProvider({ sdkAuth }, tokenInfo); return tokenProvider.getTokenInfo(); }; export default createAccessToken; |