| | |
| | | import { CONVERSATION_ID_INFO } from '../base/chat/constants' |
| | | import { fetchAccessToken } from '@/service/share' |
| | | import { getProcessedSystemVariablesFromUrlParams } from '../base/chat/utils' |
| | | |
| | | export const isTokenV1 = (token: Record<string, any>) => { |
| | | return !token.version |
| | | } |
| | | |
| | | export const getInitialTokenV2 = (): Record<string, any> => ({ |
| | | version: 2, |
| | | }) |
| | | |
| | | export const checkOrSetAccessToken = async () => { |
| | | const sharedToken = globalThis.location.pathname.split('/').slice(-1)[0] |
| | | const userId = (await getProcessedSystemVariablesFromUrlParams()).user_id |
| | | const accessToken = localStorage.getItem('token') || JSON.stringify(getInitialTokenV2()) |
| | | let accessTokenJson = getInitialTokenV2() |
| | | const accessToken = localStorage.getItem('token') || JSON.stringify({ [sharedToken]: '' }) |
| | | let accessTokenJson = { [sharedToken]: '' } |
| | | try { |
| | | accessTokenJson = JSON.parse(accessToken) |
| | | if (isTokenV1(accessTokenJson)) |
| | | accessTokenJson = getInitialTokenV2() |
| | | } |
| | | catch { |
| | | catch (e) { |
| | | |
| | | } |
| | | if (!accessTokenJson[sharedToken]?.[userId || 'DEFAULT']) { |
| | | const res = await fetchAccessToken(sharedToken, userId) |
| | | accessTokenJson[sharedToken] = { |
| | | ...accessTokenJson[sharedToken], |
| | | [userId || 'DEFAULT']: res.access_token, |
| | | } |
| | | if (!accessTokenJson[sharedToken]) { |
| | | const res = await fetchAccessToken(sharedToken) |
| | | accessTokenJson[sharedToken] = res.access_token |
| | | localStorage.setItem('token', JSON.stringify(accessTokenJson)) |
| | | } |
| | | } |
| | | |
| | | export const setAccessToken = async (sharedToken: string, token: string, user_id?: string) => { |
| | | const accessToken = localStorage.getItem('token') || JSON.stringify(getInitialTokenV2()) |
| | | let accessTokenJson = getInitialTokenV2() |
| | | export const setAccessToken = async (sharedToken: string, token: string) => { |
| | | const accessToken = localStorage.getItem('token') || JSON.stringify({ [sharedToken]: '' }) |
| | | let accessTokenJson = { [sharedToken]: '' } |
| | | try { |
| | | accessTokenJson = JSON.parse(accessToken) |
| | | if (isTokenV1(accessTokenJson)) |
| | | accessTokenJson = getInitialTokenV2() |
| | | } |
| | | catch { |
| | | catch (e) { |
| | | |
| | | } |
| | | |
| | | localStorage.removeItem(CONVERSATION_ID_INFO) |
| | | |
| | | accessTokenJson[sharedToken] = { |
| | | ...accessTokenJson[sharedToken], |
| | | [user_id || 'DEFAULT']: token, |
| | | } |
| | | accessTokenJson[sharedToken] = token |
| | | localStorage.setItem('token', JSON.stringify(accessTokenJson)) |
| | | } |
| | | |
| | | export const removeAccessToken = () => { |
| | | const sharedToken = globalThis.location.pathname.split('/').slice(-1)[0] |
| | | |
| | | const accessToken = localStorage.getItem('token') || JSON.stringify(getInitialTokenV2()) |
| | | let accessTokenJson = getInitialTokenV2() |
| | | const accessToken = localStorage.getItem('token') || JSON.stringify({ [sharedToken]: '' }) |
| | | let accessTokenJson = { [sharedToken]: '' } |
| | | try { |
| | | accessTokenJson = JSON.parse(accessToken) |
| | | if (isTokenV1(accessTokenJson)) |
| | | accessTokenJson = getInitialTokenV2() |
| | | } |
| | | catch { |
| | | catch (e) { |
| | | |
| | | } |
| | | |