mirror of
https://gitee.com/wanwujie/sub2api
synced 2026-04-26 01:14:47 +08:00
feat: append auth token to purchase iframe url
This commit is contained in:
@@ -1 +1 @@
|
|||||||
0.1.87.4
|
0.1.87.5
|
||||||
@@ -80,6 +80,7 @@ const appStore = useAppStore()
|
|||||||
const authStore = useAuthStore()
|
const authStore = useAuthStore()
|
||||||
|
|
||||||
const PURCHASE_USER_ID_QUERY_KEY = 'user_id'
|
const PURCHASE_USER_ID_QUERY_KEY = 'user_id'
|
||||||
|
const PURCHASE_AUTH_TOKEN_QUERY_KEY = 'token'
|
||||||
const PURCHASE_THEME_QUERY_KEY = 'theme'
|
const PURCHASE_THEME_QUERY_KEY = 'theme'
|
||||||
const PURCHASE_UI_MODE_QUERY_KEY = 'ui_mode'
|
const PURCHASE_UI_MODE_QUERY_KEY = 'ui_mode'
|
||||||
const PURCHASE_UI_MODE_EMBEDDED = 'embedded'
|
const PURCHASE_UI_MODE_EMBEDDED = 'embedded'
|
||||||
@@ -97,13 +98,21 @@ function detectTheme(): 'light' | 'dark' {
|
|||||||
return document.documentElement.classList.contains('dark') ? 'dark' : 'light'
|
return document.documentElement.classList.contains('dark') ? 'dark' : 'light'
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildPurchaseUrl(baseUrl: string, userId?: number, theme: 'light' | 'dark' = 'light'): string {
|
function buildPurchaseUrl(
|
||||||
|
baseUrl: string,
|
||||||
|
userId?: number,
|
||||||
|
authToken?: string | null,
|
||||||
|
theme: 'light' | 'dark' = 'light',
|
||||||
|
): string {
|
||||||
if (!baseUrl) return baseUrl
|
if (!baseUrl) return baseUrl
|
||||||
try {
|
try {
|
||||||
const url = new URL(baseUrl)
|
const url = new URL(baseUrl)
|
||||||
if (userId) {
|
if (userId) {
|
||||||
url.searchParams.set(PURCHASE_USER_ID_QUERY_KEY, String(userId))
|
url.searchParams.set(PURCHASE_USER_ID_QUERY_KEY, String(userId))
|
||||||
}
|
}
|
||||||
|
if (authToken) {
|
||||||
|
url.searchParams.set(PURCHASE_AUTH_TOKEN_QUERY_KEY, authToken)
|
||||||
|
}
|
||||||
url.searchParams.set(PURCHASE_THEME_QUERY_KEY, theme)
|
url.searchParams.set(PURCHASE_THEME_QUERY_KEY, theme)
|
||||||
url.searchParams.set(PURCHASE_UI_MODE_QUERY_KEY, PURCHASE_UI_MODE_EMBEDDED)
|
url.searchParams.set(PURCHASE_UI_MODE_QUERY_KEY, PURCHASE_UI_MODE_EMBEDDED)
|
||||||
return url.toString()
|
return url.toString()
|
||||||
@@ -112,6 +121,9 @@ function buildPurchaseUrl(baseUrl: string, userId?: number, theme: 'light' | 'da
|
|||||||
if (userId) {
|
if (userId) {
|
||||||
params.push(`${PURCHASE_USER_ID_QUERY_KEY}=${encodeURIComponent(String(userId))}`)
|
params.push(`${PURCHASE_USER_ID_QUERY_KEY}=${encodeURIComponent(String(userId))}`)
|
||||||
}
|
}
|
||||||
|
if (authToken) {
|
||||||
|
params.push(`${PURCHASE_AUTH_TOKEN_QUERY_KEY}=${encodeURIComponent(authToken)}`)
|
||||||
|
}
|
||||||
params.push(`${PURCHASE_THEME_QUERY_KEY}=${encodeURIComponent(theme)}`)
|
params.push(`${PURCHASE_THEME_QUERY_KEY}=${encodeURIComponent(theme)}`)
|
||||||
params.push(`${PURCHASE_UI_MODE_QUERY_KEY}=${encodeURIComponent(PURCHASE_UI_MODE_EMBEDDED)}`)
|
params.push(`${PURCHASE_UI_MODE_QUERY_KEY}=${encodeURIComponent(PURCHASE_UI_MODE_EMBEDDED)}`)
|
||||||
const separator = baseUrl.includes('?') ? '&' : '?'
|
const separator = baseUrl.includes('?') ? '&' : '?'
|
||||||
@@ -121,7 +133,7 @@ function buildPurchaseUrl(baseUrl: string, userId?: number, theme: 'light' | 'da
|
|||||||
|
|
||||||
const purchaseUrl = computed(() => {
|
const purchaseUrl = computed(() => {
|
||||||
const baseUrl = (appStore.cachedPublicSettings?.purchase_subscription_url || '').trim()
|
const baseUrl = (appStore.cachedPublicSettings?.purchase_subscription_url || '').trim()
|
||||||
return buildPurchaseUrl(baseUrl, authStore.user?.id, purchaseTheme.value)
|
return buildPurchaseUrl(baseUrl, authStore.user?.id, authStore.token, purchaseTheme.value)
|
||||||
})
|
})
|
||||||
|
|
||||||
const isValidUrl = computed(() => {
|
const isValidUrl = computed(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user