Java 如何使用play Framework安全模块在创建用户后登录该用户

Java 如何使用play Framework安全模块在创建用户后登录该用户,java,playframework,Java,Playframework,我正在使用play框架中的“安全”模块,它的大部分功能都很好。我可以通过在我的应用程序中的/login路径中发布一个来登录用户 但是,当我“创建/注册”一个新用户时,我希望该用户在创建用户后自动登录。这一点,我似乎无法以编程方式工作,也就是说,不必在登录时发布表单 我的用户创建操作的当前代码如下: public static void create(@Required @Email String email, @Required String password, @Required @E

我正在使用play框架中的“安全”模块,它的大部分功能都很好。我可以通过在我的应用程序中的/login路径中发布一个来登录用户

但是,当我“创建/注册”一个新用户时,我希望该用户在创建用户后自动登录。这一点,我似乎无法以编程方式工作,也就是说,不必在登录时发布表单

我的用户创建操作的当前代码如下:

    public static void create(@Required @Email String email, @Required String password, @Required @Equals("password") String passwordConfirmation) {
        User user = new User(email);
        user.password = new Crypto().encryptAES(password);
    user.save();

        try {
        Secure.authenticate(email, password, false); // <== this is the action in secure module mapped to /login
    } catch(Throwable t) {
        t.printStackTrace();
    }
   }
public static void create(@Required@Email String Email,@Required String password,@Required@Equals(“password”)String password确认){
用户=新用户(电子邮件);
user.password=new Crypto().encryptAES(密码);
user.save();
试一试{

安全。身份验证(电子邮件、密码、false);//一个方法是在会话中设置用户名(在用户成功注册后)

这将确保Secure.connected()按预期返回

如果你需要“记住我”

if(remember){
     response.setCookie("rememberme", Crypto.sign(username) + "-" + username, "30d");
}
实际上,这就是安全模块在成功身份验证后所做的。 检查

if(remember){
     response.setCookie("rememberme", Crypto.sign(username) + "-" + username, "30d");
}