Files
dify/web/service/webapp-auth.ts
+24
-LAN-GitHubCopilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>Yunlu WenJoelGareArcNFishDavide Delbiancominglu7Pondercrazywoolagemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>heysztAsuka MinatoGuangdong LiuEric GuoNeatGuyCodingXlKsytDhruv Gorasiyacrazywoolagithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>lyzno1hj24GuanMu非法操作CopilotTonloYusuke YamadaNovicekenwoodjwAdemílson Tonatoznnyangzheli
9a5f214623 refactor: replace localStorage with HTTP-only cookies for auth tokens (#24365)
Signed-off-by: NeatGuyCoding <[email protected]>
Signed-off-by: lyzno1 <[email protected]>
Signed-off-by: kenwoodjw <[email protected]>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Yunlu Wen <[email protected]>
Co-authored-by: Joel <[email protected]>
Co-authored-by: GareArc <[email protected]>
Co-authored-by: NFish <[email protected]>
Co-authored-by: Davide Delbianco <[email protected]>
Co-authored-by: minglu7 <[email protected]>
Co-authored-by: Ponder <[email protected]>
Co-authored-by: crazywoola <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: heyszt <[email protected]>
Co-authored-by: Asuka Minato <[email protected]>
Co-authored-by: Guangdong Liu <[email protected]>
Co-authored-by: Eric Guo <[email protected]>
Co-authored-by: NeatGuyCoding <[email protected]>
Co-authored-by: XlKsyt <[email protected]>
Co-authored-by: Dhruv Gorasiya <[email protected]>
Co-authored-by: crazywoola <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: lyzno1 <[email protected]>
Co-authored-by: hj24 <[email protected]>
Co-authored-by: GuanMu <[email protected]>
Co-authored-by: 非法操作 <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Tonlo <[email protected]>
Co-authored-by: Yusuke Yamada <[email protected]>
Co-authored-by: Novice <[email protected]>
Co-authored-by: kenwoodjw <[email protected]>
Co-authored-by: Ademílson Tonato <[email protected]>
Co-authored-by: znn <[email protected]>
Co-authored-by: yangzheli <[email protected]>
2025-10-19 21:29:04 +08:00

54 lines
1.5 KiB
TypeScript

import { ACCESS_TOKEN_LOCAL_STORAGE_NAME, PASSPORT_LOCAL_STORAGE_NAME } from '@/config'
import { getPublic, postPublic } from './base'
export function setWebAppAccessToken(token: string) {
localStorage.setItem(ACCESS_TOKEN_LOCAL_STORAGE_NAME, token)
}
export function setWebAppPassport(shareCode: string, token: string) {
localStorage.setItem(PASSPORT_LOCAL_STORAGE_NAME(shareCode), token)
}
export function getWebAppAccessToken() {
return localStorage.getItem(ACCESS_TOKEN_LOCAL_STORAGE_NAME) || ''
}
export function getWebAppPassport(shareCode: string) {
return localStorage.getItem(PASSPORT_LOCAL_STORAGE_NAME(shareCode)) || ''
}
export function clearWebAppAccessToken() {
localStorage.removeItem(ACCESS_TOKEN_LOCAL_STORAGE_NAME)
}
export function clearWebAppPassport(shareCode: string) {
localStorage.removeItem(PASSPORT_LOCAL_STORAGE_NAME(shareCode))
}
type isWebAppLogin = {
logged_in: boolean
app_logged_in: boolean
}
export async function webAppLoginStatus(enabled: boolean, shareCode: string) {
if (!enabled) {
return {
userLoggedIn: true,
appLoggedIn: true,
}
}
// check remotely, the access token could be in cookie (enterprise SSO redirected with https)
const { logged_in, app_logged_in } = await getPublic<isWebAppLogin>(`/login/status?app_code=${shareCode}`)
return {
userLoggedIn: logged_in,
appLoggedIn: app_logged_in,
}
}
export async function webAppLogout(shareCode: string) {
clearWebAppAccessToken()
clearWebAppPassport(shareCode)
await postPublic('/logout')
}