[英]Javalin sessionAttribute() isn't Persisting Between Requests
我将 Javalin 设置为微服务,为我的 React 应用程序提供 API 端点。 在本地,Javalin 在 7070 端口上运行,而 React 在 3000 上运行(通过带有 create-react-app 的内置服务器)。
我正在尝试连接登录/注销服务,并且在我的登录控制器中我有这个代码。
boolean isValid = User.isPasswordValid(u, password);
if (isValid)
{
ctx.sessionAttribute("currentUser", u.userHash);
}
在 React 代码中,它侦听来自此控制器的成功响应,然后重新路由到/dashboard
页面。 /dashboard
页面加载数据,我通过从会话中获取 userHash 来获取适合用户的数据,如下所示:
String userHash = ctx.sessionAttribute("currentUser");
但是,这总是返回 null。
看起来这应该可行,甚至与 Javalin 网站https://javalin.io/tutorials/website-example上发布的教程代码相匹配
React 代码和运行在不同服务器上的 Javalin 是否会导致这不起作用? 我尝试用sessionAttribute()
替换cookieStore()
并且它具有相同的空问题。
与Javalin创建者讨论后,正确答案是在服务器创建中包含这一行:
app.before(ctx -> ctx.header("Access-Control-Allow-Credentials", "true"));
并确保您的 JavaScript 调用包含以下选项:
credentials: "include",
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.