fix: manual call passport API after login success. remove webAccessToken in localStorage

pull/20109/head
NFish 12 months ago
parent 08d72fb0ab
commit b50823dbab

@ -10,7 +10,8 @@ import Input from '@/app/components/base/input'
import Toast from '@/app/components/base/toast' import Toast from '@/app/components/base/toast'
import { sendWebAppEMailLoginCode, webAppEmailLoginWithCode } from '@/service/common' import { sendWebAppEMailLoginCode, webAppEmailLoginWithCode } from '@/service/common'
import I18NContext from '@/context/i18n' 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() { export default function CheckCode() {
const { t } = useTranslation() const { t } = useTranslation()
@ -58,8 +59,8 @@ export default function CheckCode() {
setIsLoading(true) setIsLoading(true)
const ret = await webAppEmailLoginWithCode({ email, code, token }) const ret = await webAppEmailLoginWithCode({ email, code, token })
if (ret.result === 'success') { if (ret.result === 'success') {
localStorage.setItem('webAppAccessToken', ret.data.access_token) const tokenResp = await fetchAccessToken({ appCode, webAppAccessToken: ret.data.access_token })
await checkOrSetAccessToken(appCode) await setAccessToken(appCode, tokenResp.access_token)
router.replace(redirectUrl) router.replace(redirectUrl)
} }
} }

@ -10,7 +10,8 @@ import { webAppLogin } from '@/service/common'
import Input from '@/app/components/base/input' import Input from '@/app/components/base/input'
import I18NContext from '@/context/i18n' import I18NContext from '@/context/i18n'
import { noop } from 'lodash-es' 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 = { type MailAndPasswordAuthProps = {
isEmailSetup: boolean isEmailSetup: boolean
@ -83,8 +84,8 @@ export default function MailAndPasswordAuth({ isEmailSetup }: MailAndPasswordAut
body: loginData, body: loginData,
}) })
if (res.result === 'success') { if (res.result === 'success') {
localStorage.setItem('webAppAccessToken', res.data.access_token) const tokenResp = await fetchAccessToken({ appCode, webAppAccessToken: res.data.access_token })
await checkOrSetAccessToken(appCode) await setAccessToken(appCode, tokenResp.access_token)
router.replace(redirectUrl) router.replace(redirectUrl)
} }
else { else {

@ -4,7 +4,7 @@ import type { FC } from 'react'
import React, { useCallback, useEffect } from 'react' import React, { useCallback, useEffect } from 'react'
import { useTranslation } from 'react-i18next' import { useTranslation } from 'react-i18next'
import Toast from '@/app/components/base/toast' 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 { useGlobalPublicStore } from '@/context/global-public-context'
import Loading from '@/app/components/base/loading' import Loading from '@/app/components/base/loading'
import AppUnavailable from '@/app/components/base/app-unavailable' import AppUnavailable from '@/app/components/base/app-unavailable'
@ -12,6 +12,7 @@ import NormalForm from './normalForm'
import { AccessMode } from '@/models/access-control' import { AccessMode } from '@/models/access-control'
import ExternalMemberSsoAuth from './components/external-member-sso-auth' import ExternalMemberSsoAuth from './components/external-member-sso-auth'
import Link from 'next/link' import Link from 'next/link'
import { fetchAccessToken } from '@/service/share'
const WebSSOForm: FC = () => { const WebSSOForm: FC = () => {
const { t } = useTranslation() const { t } = useTranslation()
@ -49,8 +50,8 @@ const WebSSOForm: FC = () => {
(async () => { (async () => {
const appCode = getAppCodeFromRedirectUrl() const appCode = getAppCodeFromRedirectUrl()
if (appCode && tokenFromUrl && redirectUrl) { if (appCode && tokenFromUrl && redirectUrl) {
localStorage.setItem('webAppAccessToken', tokenFromUrl) const tokenResp = await fetchAccessToken({ appCode, webAppAccessToken: tokenFromUrl })
await checkOrSetAccessToken(appCode) await setAccessToken(appCode, tokenResp.access_token)
router.replace(redirectUrl) router.replace(redirectUrl)
} }
})() })()

@ -124,7 +124,6 @@ const ChatWithHistoryWrap: FC<ChatWithHistoryWrapProps> = ({
const { const {
appInfoError, appInfoError,
appInfoLoading, appInfoLoading,
accessMode,
userCanAccess, userCanAccess,
appData, appData,
appParams, appParams,
@ -169,7 +168,6 @@ const ChatWithHistoryWrap: FC<ChatWithHistoryWrapProps> = ({
appInfoError, appInfoError,
appInfoLoading, appInfoLoading,
appData, appData,
accessMode,
userCanAccess, userCanAccess,
appParams, appParams,
appMeta, appMeta,

@ -23,9 +23,9 @@ export const checkOrSetAccessToken = async (appCode?: string) => {
catch { catch {
} }
const webAppAccessToken = localStorage.getItem('webAppAccessToken')
if (!accessTokenJson[sharedToken]?.[userId || 'DEFAULT']) { if (!accessTokenJson[sharedToken]?.[userId || 'DEFAULT']) {
const res = await fetchAccessToken({ appCode: sharedToken, userId, webAppAccessToken }) const res = await fetchAccessToken({ appCode: sharedToken, userId })
accessTokenJson[sharedToken] = { accessTokenJson[sharedToken] = {
...accessTokenJson[sharedToken], ...accessTokenJson[sharedToken],
[userId || 'DEFAULT']: res.access_token, [userId || 'DEFAULT']: res.access_token,
@ -70,7 +70,6 @@ export const removeAccessToken = () => {
} }
localStorage.removeItem(CONVERSATION_ID_INFO) localStorage.removeItem(CONVERSATION_ID_INFO)
localStorage.removeItem('webAppAccessToken')
delete accessTokenJson[sharedToken] delete accessTokenJson[sharedToken]
localStorage.setItem('token', JSON.stringify(accessTokenJson)) localStorage.setItem('token', JSON.stringify(accessTokenJson))

Loading…
Cancel
Save