首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Play 2框架(Java)中,如何在认证后将用户对象添加到会话中

在Play 2框架(Java)中,如何在认证后将用户对象添加到会话中
EN

Stack Overflow用户
提问于 2012-11-15 23:47:06
回答 1查看 1.1K关注 0票数 0

我查看了"zentasks" sample code以了解一些基本的用户登录和安全方面的知识。应用程序控制器有一个authenticate method,并且在该方法期间将调用User.authenticate method。以下是这些链接中的几个代码片段:

代码语言:javascript
复制
public static Result authenticate() {
    Form<Login> loginForm = form(Login.class).bindFromRequest();
    if(loginForm.hasErrors()) {
        return badRequest(login.render(loginForm));
    } else {
        session("email", loginForm.get().email);
        return redirect(
            routes.Projects.index()
        );
    }
}
...
public static class Login {

    public String email;
    public String password;

    public String validate() {
        if(User.authenticate(email, password) == null) {
            return "Invalid user or password";
        }
        return null;
    }

}

正如您所看到的,如果它通过了身份验证(即找到一个用户对象),则authenticate方法会将"email“添加到会话中。我想要添加完整的user对象,但是在控制器操作中,我有会话,我没有User对象。我不想重新查询数据库,我想使用刚刚在Login.validate中找到的同一个User对象。有什么好方法可以做到这一点呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-16 03:28:37

有没有什么原因不能简单地将字段添加到登录类中?

代码语言:javascript
复制
public static class Login {

    public String email;
    public String password;
    public User user;

    public String validate() {
        user = User.authenticate(email, password);
        if(user == null) {
            return "Invalid user or password";
        }
        return null;
    }
}

这并不是说这一定会对你有帮助,看看API,你似乎不能将对象添加到会话中,只能添加字符串。

http://www.playframework.org/documentation/api/2.0.4/java/play/mvc/Http.Session.html

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13401091

复制
相关文章

相似问题

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