浏览代码

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

Co-authored-by: crazywoola <427733928@qq.com>
tags/1.7.2
NFish 3 个月前
父节点
当前提交
f5e177db89
没有帐户链接到提交者的电子邮件
共有 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 查看文件

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

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

const pathname = usePathname() const pathname = usePathname()
const searchParams = useSearchParams() const searchParams = useSearchParams()
const redirectUrlParam = searchParams.get('redirect_url') 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 { isFetching, data: accessModeResult } = useGetWebAppAccessModeByCode(shareCode)
const [isFetchingAccessToken, setIsFetchingAccessToken] = useState(true)
const [isFetchingAccessToken, setIsFetchingAccessToken] = useState(false)

useEffect(() => { useEffect(() => {
if (accessModeResult?.accessMode) { if (accessModeResult?.accessMode) {
updateWebAppAccessMode(accessModeResult.accessMode) updateWebAppAccessMode(accessModeResult.accessMode)
if (accessModeResult?.accessMode === AccessMode.PUBLIC && session && sysUserId) {
if (accessModeResult.accessMode === AccessMode.PUBLIC) {
setIsFetchingAccessToken(true) setIsFetchingAccessToken(true)
checkOrSetAccessToken(shareCode).finally(() => { checkOrSetAccessToken(shareCode).finally(() => {
setIsFetchingAccessToken(false) setIsFetchingAccessToken(false)
setIsFetchingAccessToken(false) setIsFetchingAccessToken(false)
} }
} }
}, [accessModeResult, updateWebAppAccessMode, setIsFetchingAccessToken, shareCode, session, sysUserId])
}, [accessModeResult, updateWebAppAccessMode, shareCode])

if (isFetching || isFetchingAccessToken) { if (isFetching || isFetchingAccessToken) {
return <div className='flex h-full w-full items-center justify-center'> return <div className='flex h-full w-full items-center justify-center'>
<Loading /> <Loading />

正在加载...
取消
保存