UNPKG

@amityco/ts-sdk-react-native

Version:

Amity Social Cloud Typescript SDK

47 lines (37 loc) 1.49 kB
import { getActiveClient } from '../api/activeClient'; import { setSessionState } from '../api/setSessionState'; import { getToken } from '../api/getToken'; /** * A util to set or refresh client token * * @param params.userId the user ID for the current session * @param params.displayName the user's displayName for the current session * @param params.deviceId Manual override of the user's device id (for device management) * @param params.authToken The authentication token - necessary when network option is set to secure * @returns token & user info * * @category private * @async */ export const setClientToken = async (params: Parameters<typeof getToken>[0]) => { const client = getActiveClient(); // begin establishing session setSessionState(Amity.SessionStates.ESTABLISHING); const { accessToken, users, expiresAt, issuedAt } = await getToken(params); // manually setup the token for http transport client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`; client.http.defaults.metadata = { tokenExpiry: expiresAt, isGlobalBanned: false, isUserDeleted: false, }; client.upload.defaults.headers.common.Authorization = `Bearer ${accessToken}`; client.upload.defaults.metadata = { tokenExpiry: expiresAt, isGlobalBanned: false, isUserDeleted: false, }; client.token = { accessToken, issuedAt, expiresAt }; setSessionState(Amity.SessionStates.ESTABLISHED); return { accessToken, users }; };