fix: call checkOrSetAccessToken when app access mode is PUBLIC (#23195)
Co-authored-by: crazywoola <427733928@qq.com>
This commit is contained in:
@@ -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',
|
||||
|
@@ -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 />
|
||||
|
Reference in New Issue
Block a user