fix: 更新依赖项版本并优化远程应用连接逻辑
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { app, assistantConfig } from '../../app.ts';
|
||||
import { forwardCookie } from './utils/cookie.ts';
|
||||
|
||||
app.route({
|
||||
path: 'admin',
|
||||
@@ -23,19 +24,7 @@ app.route({
|
||||
password,
|
||||
}),
|
||||
});
|
||||
|
||||
// 转发上游服务器返回的所有 set-cookie(支持多个 cookie)
|
||||
const setCookieHeaders = res.headers.getSetCookie?.() || [];
|
||||
if (setCookieHeaders.length > 0) {
|
||||
// 设置多个 cookie 到原生 http.ServerResponse
|
||||
ctx.res.setHeader('Set-Cookie', setCookieHeaders);
|
||||
} else {
|
||||
// 兼容旧版本,使用 get 方法
|
||||
const setCookieHeader = res.headers.get('set-cookie');
|
||||
if (setCookieHeader) {
|
||||
ctx.res.setHeader('Set-Cookie', setCookieHeader);
|
||||
}
|
||||
}
|
||||
forwardCookie(ctx, res);
|
||||
|
||||
const responseData = await res.json();
|
||||
console.debug('admin login response', { res: responseData });
|
||||
@@ -73,6 +62,9 @@ app.route({
|
||||
key: 'me'
|
||||
}).define(async (ctx) => {
|
||||
const token = ctx.query.token;
|
||||
if (!token) {
|
||||
ctx.throw(401, 'token is required');
|
||||
}
|
||||
const res = await assistantConfig.query.post({
|
||||
path: 'user',
|
||||
key: 'me',
|
||||
|
||||
14
assistant/src/routes/user/utils/cookie.ts
Normal file
14
assistant/src/routes/user/utils/cookie.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
export const forwardCookie = (ctx: any, res: any) => {
|
||||
// 转发上游服务器返回的所有 set-cookie(支持多个 cookie)
|
||||
const setCookieHeaders = res.headers.getSetCookie?.() || [];
|
||||
if (setCookieHeaders.length > 0) {
|
||||
// 设置多个 cookie 到原生 http.ServerResponse
|
||||
ctx.res.setHeader('Set-Cookie', setCookieHeaders);
|
||||
} else {
|
||||
// 兼容旧版本,使用 get 方法
|
||||
const setCookieHeader = res.headers.get('set-cookie');
|
||||
if (setCookieHeader) {
|
||||
ctx.res.setHeader('Set-Cookie', setCookieHeader);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user