diff --git a/app/api/utils/common.ts b/app/api/utils/common.ts index b9209e4..cc0f6b4 100644 --- a/app/api/utils/common.ts +++ b/app/api/utils/common.ts @@ -1,7 +1,7 @@ import type { NextRequest } from 'next/server' import { ChatClient } from 'dify-client' import { v4 } from 'uuid' -import { API_KEY, API_URL, APP_ID } from '@/config' +import { API_KEY, API_URL, APP_ID, APP_INFO } from '@/config' const userPrefix = `user_${APP_ID}:` @@ -15,7 +15,10 @@ export const getInfo = (request: NextRequest) => { } export const setSession = (sessionId: string) => { - return { 'Set-Cookie': `session_id=${sessionId}` } + if (APP_INFO.disable_session_same_site) + return { 'Set-Cookie': `session_id=${sessionId}; SameSite=None; Secure` } + + return { 'Set-Cookie': `session_id=${sessionId}` } } export const client = new ChatClient(API_KEY, API_URL || undefined) diff --git a/config/index.ts b/config/index.ts index eb726f1..74c9758 100644 --- a/config/index.ts +++ b/config/index.ts @@ -8,6 +8,7 @@ export const APP_INFO: AppInfo = { copyright: '', privacy_policy: '', default_language: 'en', + disable_session_same_site: false, // set it to true if you want to embed the chatbot in an iframe } export const isShowPrompt = false diff --git a/types/app.ts b/types/app.ts index 93fcae6..861ad9c 100644 --- a/types/app.ts +++ b/types/app.ts @@ -112,6 +112,7 @@ export interface AppInfo { default_language: Locale copyright?: string privacy_policy?: string + disable_session_same_site?: boolean } export enum Resolution {