mirror of
https://github.com/langgenius/dify.git
synced 2026-03-01 12:55:13 +00:00
Compare commits
2 Commits
deploy/dev
...
1-14-remov
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
18a6b4ac90 | ||
|
|
32bc319387 |
@@ -7,7 +7,7 @@ import AppUnavailable from '@/app/components/base/app-unavailable'
|
|||||||
import Loading from '@/app/components/base/loading'
|
import Loading from '@/app/components/base/loading'
|
||||||
import { useWebAppStore } from '@/context/web-app-context'
|
import { useWebAppStore } from '@/context/web-app-context'
|
||||||
import { fetchAccessToken } from '@/service/share'
|
import { fetchAccessToken } from '@/service/share'
|
||||||
import { setWebAppAccessToken, setWebAppPassport, webAppLoginStatus, webAppLogout } from '@/service/webapp-auth'
|
import { setWebAppPassport, webAppLoginStatus, webAppLogout } from '@/service/webapp-auth'
|
||||||
|
|
||||||
const Splash: FC<PropsWithChildren> = ({ children }) => {
|
const Splash: FC<PropsWithChildren> = ({ children }) => {
|
||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
@@ -40,9 +40,6 @@ const Splash: FC<PropsWithChildren> = ({ children }) => {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tokenFromUrl)
|
|
||||||
setWebAppAccessToken(tokenFromUrl)
|
|
||||||
|
|
||||||
const redirectOrFinish = () => {
|
const redirectOrFinish = () => {
|
||||||
if (redirectUrl)
|
if (redirectUrl)
|
||||||
router.replace(decodeURIComponent(redirectUrl))
|
router.replace(decodeURIComponent(redirectUrl))
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import { useLocale } from '@/context/i18n'
|
|||||||
import { useWebAppStore } from '@/context/web-app-context'
|
import { useWebAppStore } from '@/context/web-app-context'
|
||||||
import { sendWebAppEMailLoginCode, webAppEmailLoginWithCode } from '@/service/common'
|
import { sendWebAppEMailLoginCode, webAppEmailLoginWithCode } from '@/service/common'
|
||||||
import { fetchAccessToken } from '@/service/share'
|
import { fetchAccessToken } from '@/service/share'
|
||||||
import { setWebAppAccessToken, setWebAppPassport } from '@/service/webapp-auth'
|
import { setWebAppPassport } from '@/service/webapp-auth'
|
||||||
import { encryptVerificationCode } from '@/utils/encryption'
|
import { encryptVerificationCode } from '@/utils/encryption'
|
||||||
|
|
||||||
export default function CheckCode() {
|
export default function CheckCode() {
|
||||||
@@ -66,9 +66,6 @@ export default function CheckCode() {
|
|||||||
setIsLoading(true)
|
setIsLoading(true)
|
||||||
const ret = await webAppEmailLoginWithCode({ email, code: encryptVerificationCode(code), token })
|
const ret = await webAppEmailLoginWithCode({ email, code: encryptVerificationCode(code), token })
|
||||||
if (ret.result === 'success') {
|
if (ret.result === 'success') {
|
||||||
if (ret?.data?.access_token) {
|
|
||||||
setWebAppAccessToken(ret.data.access_token)
|
|
||||||
}
|
|
||||||
const { access_token } = await fetchAccessToken({
|
const { access_token } = await fetchAccessToken({
|
||||||
appCode: appCode!,
|
appCode: appCode!,
|
||||||
userId: embeddedUserId || undefined,
|
userId: embeddedUserId || undefined,
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import { useLocale } from '@/context/i18n'
|
|||||||
import { useWebAppStore } from '@/context/web-app-context'
|
import { useWebAppStore } from '@/context/web-app-context'
|
||||||
import { webAppLogin } from '@/service/common'
|
import { webAppLogin } from '@/service/common'
|
||||||
import { fetchAccessToken } from '@/service/share'
|
import { fetchAccessToken } from '@/service/share'
|
||||||
import { setWebAppAccessToken, setWebAppPassport } from '@/service/webapp-auth'
|
import { setWebAppPassport } from '@/service/webapp-auth'
|
||||||
import { encryptPassword } from '@/utils/encryption'
|
import { encryptPassword } from '@/utils/encryption'
|
||||||
|
|
||||||
type MailAndPasswordAuthProps = {
|
type MailAndPasswordAuthProps = {
|
||||||
@@ -82,10 +82,6 @@ export default function MailAndPasswordAuth({ isEmailSetup }: MailAndPasswordAut
|
|||||||
body: loginData,
|
body: loginData,
|
||||||
})
|
})
|
||||||
if (res.result === 'success') {
|
if (res.result === 'success') {
|
||||||
if (res?.data?.access_token) {
|
|
||||||
setWebAppAccessToken(res.data.access_token)
|
|
||||||
}
|
|
||||||
|
|
||||||
const { access_token } = await fetchAccessToken({
|
const { access_token } = await fetchAccessToken({
|
||||||
appCode: appCode!,
|
appCode: appCode!,
|
||||||
userId: embeddedUserId || undefined,
|
userId: embeddedUserId || undefined,
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import Toast from '@/app/components/base/toast'
|
|||||||
import { emailRegex } from '@/config'
|
import { emailRegex } from '@/config'
|
||||||
import { useLocale } from '@/context/i18n'
|
import { useLocale } from '@/context/i18n'
|
||||||
import { login } from '@/service/common'
|
import { login } from '@/service/common'
|
||||||
import { setWebAppAccessToken } from '@/service/webapp-auth'
|
|
||||||
import { encryptPassword } from '@/utils/encryption'
|
import { encryptPassword } from '@/utils/encryption'
|
||||||
import { resolvePostLoginRedirect } from '../utils/post-login-redirect'
|
import { resolvePostLoginRedirect } from '../utils/post-login-redirect'
|
||||||
|
|
||||||
@@ -65,10 +64,6 @@ export default function MailAndPasswordAuth({ isInvite, isEmailSetup, allowRegis
|
|||||||
body: loginData,
|
body: loginData,
|
||||||
})
|
})
|
||||||
if (res.result === 'success') {
|
if (res.result === 'success') {
|
||||||
if (res?.data?.access_token) {
|
|
||||||
// Track login success event
|
|
||||||
setWebAppAccessToken(res.data.access_token)
|
|
||||||
}
|
|
||||||
trackEvent('user_login_success', {
|
trackEvent('user_login_success', {
|
||||||
method: 'email_password',
|
method: 'email_password',
|
||||||
is_invite: isInvite,
|
is_invite: isInvite,
|
||||||
|
|||||||
@@ -179,7 +179,6 @@ export const CSRF_COOKIE_NAME = () => {
|
|||||||
return isSecure ? '__Host-csrf_token' : 'csrf_token'
|
return isSecure ? '__Host-csrf_token' : 'csrf_token'
|
||||||
}
|
}
|
||||||
export const CSRF_HEADER_NAME = 'X-CSRF-Token'
|
export const CSRF_HEADER_NAME = 'X-CSRF-Token'
|
||||||
export const ACCESS_TOKEN_LOCAL_STORAGE_NAME = 'access_token'
|
|
||||||
export const PASSPORT_LOCAL_STORAGE_NAME = (appCode: string) => `passport-${appCode}`
|
export const PASSPORT_LOCAL_STORAGE_NAME = (appCode: string) => `passport-${appCode}`
|
||||||
export const PASSPORT_HEADER_NAME = 'X-App-Passport'
|
export const PASSPORT_HEADER_NAME = 'X-App-Passport'
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,6 @@ import { del, get, patch, post, put } from './base'
|
|||||||
|
|
||||||
type LoginSuccess = {
|
type LoginSuccess = {
|
||||||
result: 'success'
|
result: 'success'
|
||||||
data?: { access_token?: string }
|
|
||||||
}
|
}
|
||||||
type LoginFail = {
|
type LoginFail = {
|
||||||
result: 'fail'
|
result: 'fail'
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import Cookies from 'js-cookie'
|
|||||||
import ky from 'ky'
|
import ky from 'ky'
|
||||||
import Toast from '@/app/components/base/toast'
|
import Toast from '@/app/components/base/toast'
|
||||||
import { API_PREFIX, APP_VERSION, CSRF_COOKIE_NAME, CSRF_HEADER_NAME, IS_MARKETPLACE, MARKETPLACE_API_PREFIX, PASSPORT_HEADER_NAME, PUBLIC_API_PREFIX, WEB_APP_SHARE_CODE_HEADER_NAME } from '@/config'
|
import { API_PREFIX, APP_VERSION, CSRF_COOKIE_NAME, CSRF_HEADER_NAME, IS_MARKETPLACE, MARKETPLACE_API_PREFIX, PASSPORT_HEADER_NAME, PUBLIC_API_PREFIX, WEB_APP_SHARE_CODE_HEADER_NAME } from '@/config'
|
||||||
import { getWebAppAccessToken, getWebAppPassport } from './webapp-auth'
|
import { getWebAppPassport } from './webapp-auth'
|
||||||
|
|
||||||
const TIME_OUT = 100000
|
const TIME_OUT = 100000
|
||||||
|
|
||||||
@@ -93,11 +93,6 @@ const resolveShareCode = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const beforeRequestPublicWithCode = (request: Request) => {
|
const beforeRequestPublicWithCode = (request: Request) => {
|
||||||
const accessToken = getWebAppAccessToken()
|
|
||||||
if (accessToken)
|
|
||||||
request.headers.set('Authorization', `Bearer ${accessToken}`)
|
|
||||||
else
|
|
||||||
request.headers.delete('Authorization')
|
|
||||||
const shareCode = resolveShareCode()
|
const shareCode = resolveShareCode()
|
||||||
if (!shareCode)
|
if (!shareCode)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -42,7 +42,6 @@ import {
|
|||||||
postPublic as post,
|
postPublic as post,
|
||||||
ssePost,
|
ssePost,
|
||||||
} from './base'
|
} from './base'
|
||||||
import { getWebAppAccessToken } from './webapp-auth'
|
|
||||||
|
|
||||||
function getAction(action: 'get' | 'post' | 'del' | 'patch', isInstalledApp: boolean) {
|
function getAction(action: 'get' | 'post' | 'del' | 'patch', isInstalledApp: boolean) {
|
||||||
switch (action) {
|
switch (action) {
|
||||||
@@ -305,9 +304,6 @@ export const textToAudioStream = (url: string, isPublicAPI: boolean, header: { c
|
|||||||
export const fetchAccessToken = async ({ userId, appCode }: { userId?: string, appCode: string }) => {
|
export const fetchAccessToken = async ({ userId, appCode }: { userId?: string, appCode: string }) => {
|
||||||
const headers = new Headers()
|
const headers = new Headers()
|
||||||
headers.append(WEB_APP_SHARE_CODE_HEADER_NAME, appCode)
|
headers.append(WEB_APP_SHARE_CODE_HEADER_NAME, appCode)
|
||||||
const accessToken = getWebAppAccessToken()
|
|
||||||
if (accessToken)
|
|
||||||
headers.append('Authorization', `Bearer ${accessToken}`)
|
|
||||||
const params = new URLSearchParams()
|
const params = new URLSearchParams()
|
||||||
if (userId)
|
if (userId)
|
||||||
params.append('user_id', userId)
|
params.append('user_id', userId)
|
||||||
|
|||||||
@@ -1,26 +1,14 @@
|
|||||||
import { ACCESS_TOKEN_LOCAL_STORAGE_NAME, PASSPORT_LOCAL_STORAGE_NAME } from '@/config'
|
import { PASSPORT_LOCAL_STORAGE_NAME } from '@/config'
|
||||||
import { getPublic, postPublic } from './base'
|
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) {
|
export function setWebAppPassport(shareCode: string, token: string) {
|
||||||
localStorage.setItem(PASSPORT_LOCAL_STORAGE_NAME(shareCode), token)
|
localStorage.setItem(PASSPORT_LOCAL_STORAGE_NAME(shareCode), token)
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getWebAppAccessToken() {
|
|
||||||
return localStorage.getItem(ACCESS_TOKEN_LOCAL_STORAGE_NAME) || ''
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getWebAppPassport(shareCode: string) {
|
export function getWebAppPassport(shareCode: string) {
|
||||||
return localStorage.getItem(PASSPORT_LOCAL_STORAGE_NAME(shareCode)) || ''
|
return localStorage.getItem(PASSPORT_LOCAL_STORAGE_NAME(shareCode)) || ''
|
||||||
}
|
}
|
||||||
|
|
||||||
export function clearWebAppAccessToken() {
|
|
||||||
localStorage.removeItem(ACCESS_TOKEN_LOCAL_STORAGE_NAME)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function clearWebAppPassport(shareCode: string) {
|
export function clearWebAppPassport(shareCode: string) {
|
||||||
localStorage.removeItem(PASSPORT_LOCAL_STORAGE_NAME(shareCode))
|
localStorage.removeItem(PASSPORT_LOCAL_STORAGE_NAME(shareCode))
|
||||||
}
|
}
|
||||||
@@ -44,7 +32,6 @@ export async function webAppLoginStatus(shareCode: string, userId?: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function webAppLogout(shareCode: string) {
|
export async function webAppLogout(shareCode: string) {
|
||||||
clearWebAppAccessToken()
|
|
||||||
clearWebAppPassport(shareCode)
|
clearWebAppPassport(shareCode)
|
||||||
await postPublic('/logout')
|
await postPublic('/logout')
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user