diff --git a/web/app/(shareLayout)/webapp-signin/check-code/page.tsx b/web/app/(shareLayout)/webapp-signin/check-code/page.tsx index 0f0bad8919..73a3a51d8f 100644 --- a/web/app/(shareLayout)/webapp-signin/check-code/page.tsx +++ b/web/app/(shareLayout)/webapp-signin/check-code/page.tsx @@ -10,7 +10,8 @@ import Input from '@/app/components/base/input' import Toast from '@/app/components/base/toast' import { sendWebAppEMailLoginCode, webAppEmailLoginWithCode } from '@/service/common' import I18NContext from '@/context/i18n' -import { checkOrSetAccessToken } from '@/app/components/share/utils' +import { setAccessToken } from '@/app/components/share/utils' +import { fetchAccessToken } from '@/service/share' export default function CheckCode() { const { t } = useTranslation() @@ -58,8 +59,8 @@ export default function CheckCode() { setIsLoading(true) const ret = await webAppEmailLoginWithCode({ email, code, token }) if (ret.result === 'success') { - localStorage.setItem('webAppAccessToken', ret.data.access_token) - await checkOrSetAccessToken(appCode) + const tokenResp = await fetchAccessToken({ appCode, webAppAccessToken: ret.data.access_token }) + await setAccessToken(appCode, tokenResp.access_token) router.replace(redirectUrl) } } diff --git a/web/app/(shareLayout)/webapp-signin/components/mail-and-password-auth.tsx b/web/app/(shareLayout)/webapp-signin/components/mail-and-password-auth.tsx index b07108b207..9975c16ef3 100644 --- a/web/app/(shareLayout)/webapp-signin/components/mail-and-password-auth.tsx +++ b/web/app/(shareLayout)/webapp-signin/components/mail-and-password-auth.tsx @@ -10,7 +10,8 @@ import { webAppLogin } from '@/service/common' import Input from '@/app/components/base/input' import I18NContext from '@/context/i18n' import { noop } from 'lodash-es' -import { checkOrSetAccessToken } from '@/app/components/share/utils' +import { setAccessToken } from '@/app/components/share/utils' +import { fetchAccessToken } from '@/service/share' type MailAndPasswordAuthProps = { isEmailSetup: boolean @@ -83,8 +84,8 @@ export default function MailAndPasswordAuth({ isEmailSetup }: MailAndPasswordAut body: loginData, }) if (res.result === 'success') { - localStorage.setItem('webAppAccessToken', res.data.access_token) - await checkOrSetAccessToken(appCode) + const tokenResp = await fetchAccessToken({ appCode, webAppAccessToken: res.data.access_token }) + await setAccessToken(appCode, tokenResp.access_token) router.replace(redirectUrl) } else { diff --git a/web/app/(shareLayout)/webapp-signin/page.tsx b/web/app/(shareLayout)/webapp-signin/page.tsx index 46b8a843b6..d9226301f6 100644 --- a/web/app/(shareLayout)/webapp-signin/page.tsx +++ b/web/app/(shareLayout)/webapp-signin/page.tsx @@ -4,7 +4,7 @@ import type { FC } from 'react' import React, { useCallback, useEffect } from 'react' import { useTranslation } from 'react-i18next' import Toast from '@/app/components/base/toast' -import { checkOrSetAccessToken } from '@/app/components/share/utils' +import { setAccessToken } from '@/app/components/share/utils' import { useGlobalPublicStore } from '@/context/global-public-context' import Loading from '@/app/components/base/loading' import AppUnavailable from '@/app/components/base/app-unavailable' @@ -12,6 +12,7 @@ import NormalForm from './normalForm' import { AccessMode } from '@/models/access-control' import ExternalMemberSsoAuth from './components/external-member-sso-auth' import Link from 'next/link' +import { fetchAccessToken } from '@/service/share' const WebSSOForm: FC = () => { const { t } = useTranslation() @@ -49,8 +50,8 @@ const WebSSOForm: FC = () => { (async () => { const appCode = getAppCodeFromRedirectUrl() if (appCode && tokenFromUrl && redirectUrl) { - localStorage.setItem('webAppAccessToken', tokenFromUrl) - await checkOrSetAccessToken(appCode) + const tokenResp = await fetchAccessToken({ appCode, webAppAccessToken: tokenFromUrl }) + await setAccessToken(appCode, tokenResp.access_token) router.replace(redirectUrl) } })() diff --git a/web/app/components/base/chat/chat-with-history/index.tsx b/web/app/components/base/chat/chat-with-history/index.tsx index de023e7f58..1fd1383196 100644 --- a/web/app/components/base/chat/chat-with-history/index.tsx +++ b/web/app/components/base/chat/chat-with-history/index.tsx @@ -124,7 +124,6 @@ const ChatWithHistoryWrap: FC = ({ const { appInfoError, appInfoLoading, - accessMode, userCanAccess, appData, appParams, @@ -169,7 +168,6 @@ const ChatWithHistoryWrap: FC = ({ appInfoError, appInfoLoading, appData, - accessMode, userCanAccess, appParams, appMeta, diff --git a/web/app/components/share/utils.ts b/web/app/components/share/utils.ts index 0568aca5c6..25ecbb9143 100644 --- a/web/app/components/share/utils.ts +++ b/web/app/components/share/utils.ts @@ -23,9 +23,9 @@ export const checkOrSetAccessToken = async (appCode?: string) => { catch { } - const webAppAccessToken = localStorage.getItem('webAppAccessToken') + if (!accessTokenJson[sharedToken]?.[userId || 'DEFAULT']) { - const res = await fetchAccessToken({ appCode: sharedToken, userId, webAppAccessToken }) + const res = await fetchAccessToken({ appCode: sharedToken, userId }) accessTokenJson[sharedToken] = { ...accessTokenJson[sharedToken], [userId || 'DEFAULT']: res.access_token, @@ -70,7 +70,6 @@ export const removeAccessToken = () => { } localStorage.removeItem(CONVERSATION_ID_INFO) - localStorage.removeItem('webAppAccessToken') delete accessTokenJson[sharedToken] localStorage.setItem('token', JSON.stringify(accessTokenJson))