fix: call checkOrSetAccessToken when app access mode is PUBLIC (#23195)

Co-authored-by: crazywoola <427733928@qq.com>
This commit is contained in:
NFish
2025-07-31 14:18:54 +08:00
committed by GitHub
parent 5febd66808
commit f5e177db89
2 changed files with 16 additions and 13 deletions

View File

@@ -46,6 +46,12 @@ const OPTION_MAP = {
? `,
baseUrl: '${url}${basePath}'`
: ''},
inputs: {
// You can define the inputs from the Start node here
// key is the variable name
// e.g.
// name: "NAME"
},
systemVariables: {
// user_id: 'YOU CAN DEFINE USER ID HERE',
// conversation_id: 'YOU CAN DEFINE CONVERSATION ID HERE, IT MUST BE A VALID UUID',

View File

@@ -61,22 +61,18 @@ const WebAppStoreProvider: FC<PropsWithChildren> = ({ children }) => {
const pathname = usePathname()
const searchParams = useSearchParams()
const redirectUrlParam = searchParams.get('redirect_url')
const session = searchParams.get('session')
const sysUserId = searchParams.get('sys.user_id')
const [shareCode, setShareCode] = useState<string | null>(null)
useEffect(() => {
const shareCodeFromRedirect = getShareCodeFromRedirectUrl(redirectUrlParam)
const shareCodeFromPathname = getShareCodeFromPathname(pathname)
const newShareCode = shareCodeFromRedirect || shareCodeFromPathname
setShareCode(newShareCode)
updateShareCode(newShareCode)
}, [pathname, redirectUrlParam, updateShareCode])
// Compute shareCode directly
const shareCode = getShareCodeFromRedirectUrl(redirectUrlParam) || getShareCodeFromPathname(pathname)
updateShareCode(shareCode)
const { isFetching, data: accessModeResult } = useGetWebAppAccessModeByCode(shareCode)
const [isFetchingAccessToken, setIsFetchingAccessToken] = useState(true)
const [isFetchingAccessToken, setIsFetchingAccessToken] = useState(false)
useEffect(() => {
if (accessModeResult?.accessMode) {
updateWebAppAccessMode(accessModeResult.accessMode)
if (accessModeResult?.accessMode === AccessMode.PUBLIC && session && sysUserId) {
if (accessModeResult.accessMode === AccessMode.PUBLIC) {
setIsFetchingAccessToken(true)
checkOrSetAccessToken(shareCode).finally(() => {
setIsFetchingAccessToken(false)
@@ -86,7 +82,8 @@ const WebAppStoreProvider: FC<PropsWithChildren> = ({ children }) => {
setIsFetchingAccessToken(false)
}
}
}, [accessModeResult, updateWebAppAccessMode, setIsFetchingAccessToken, shareCode, session, sysUserId])
}, [accessModeResult, updateWebAppAccessMode, shareCode])
if (isFetching || isFetchingAccessToken) {
return <div className='flex h-full w-full items-center justify-center'>
<Loading />