首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javalin sessionAttribute()没有在请求之间持久化

Javalin sessionAttribute()没有在请求之间持久化
EN

Stack Overflow用户
提问于 2019-03-16 00:42:12
回答 1查看 265关注 0票数 2

我正在将Javalin设置为微服务,为我的React应用程序提供API端点。在本地,Javalin在端口7070上运行,React在3000上运行(通过带有create-react-app的内置服务器)。

我正在尝试连接登录/注销服务,在我的登录控制器中有以下代码。

代码语言:javascript
复制
boolean isValid = User.isPasswordValid(u, password);
if (isValid) 
{
    ctx.sessionAttribute("currentUser", u.userHash);
}

在React代码中,它监听来自该控制器的成功响应,然后重新路由到/dashboard页面。/dashboard页面加载数据,我通过如下方式从会话中获取适合用户的数据:

代码语言:javascript
复制
    String userHash = ctx.sessionAttribute("currentUser");

但是,这总是返回null。

看起来这应该是可行的,甚至与发布在Javalin网站https://javalin.io/tutorials/website-example上的教程代码相匹配。

React代码和Javalin在不同的服务器上运行的事实是否会导致这种情况不起作用?我尝试用cookieStore()替换sessionAttribute(),它也有同样的空问题。

Edit -添加显示JSESSIONID的响应信息

EN

回答 1

Stack Overflow用户

发布于 2019-03-16 22:22:34

在与Javalin创建者讨论之后,正确的答案是在服务器创建中包含下面这一行:

代码语言:javascript
复制
app.before(ctx -> ctx.header("Access-Control-Allow-Credentials", "true"));

并确保您的JavaScript调用包含以下选项:

代码语言:javascript
复制
credentials: "include",
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55187146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档