瀏覽代碼

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

Co-authored-by: crazywoola <427733928@qq.com>
tags/1.7.2
NFish 3 月之前
父節點
當前提交
f5e177db89
No account linked to committer's email address
共有 2 個文件被更改,包括 16 次插入13 次删除
  1. 6
    0
      web/app/components/app/overview/embedded/index.tsx
  2. 10
    13
      web/context/web-app-context.tsx

+ 6
- 0
web/app/components/app/overview/embedded/index.tsx 查看文件

@@ -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',

+ 10
- 13
web/context/web-app-context.tsx 查看文件

@@ -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 />

Loading…
取消
儲存