我正在建立一个以Koa为后端的Vue应用。我已经实现了一个简单的登录系统,使用koa-session进行会话。当我直接访问服务器(实际上是导航到我的服务器端口并执行请求)时,这一切都很好,但是当我使用fetch
从前端端口访问数据时,它不会将每个访存作为相同的会话进行调用并每次创建一个新会话。这是有问题的,因为它没有检测到用户已登录。最终发生的是,即使我没有刷新页面,每次访问API都会创建一个新的会话密钥。
这是我的Koa会话配置文件:
import Koa from "koa";
import session from "koa-session";
import { getCookie } from "../actions/getCookie";
import { setCookie } from "../actions/setCookie";
import { destroyCookie } from "../actions/destroyCookie";
export const config: Readonly<Partial<session.opts>> = {
store: {
get: getCookie,
set: setCookie,
destroy: destroyCookie
},
key: "api:sess",
maxAge: 86400000,
httpOnly: true,
renew: true,
signed: false
};
export const useSession = (app: Koa) => session(config, app);```
原来是我拿来的。我用的是credentials: "same-origin"
而不是credentials: "include"
,这使一切都搞砸了。