首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >注册后的SecureSocial登录

注册后的SecureSocial登录
EN

Stack Overflow用户
提问于 2013-08-21 11:24:45
回答 1查看 455关注 0票数 0

我在SecureSocial中使用了Play Framework2.1。

我有自己的模板UserService和UsernamePasswordProvider/FacebookProvider。

我不使用SecureSocial注册我的用户,但我使用它登录和处理会话。如何让人们在注册后登录,在我的Java代码中呢?

我试着用Authenticator.create(...)

代码语言:javascript
复制
securesocial.core.Authenticator.create(Scala.orNull(securesocial.core.UserService.find(new securesocial.core.UserId(newUser.getId(),"wimhauserpass"))));

但是我不能使用UserService.find(),它告诉我它必须是静态的.

我将实现另一个提供程序,用于从RegisterForm检索凭据,并调用

代码语言:javascript
复制
securesocial.controllers.ProviderController.authenticate("userpassregister");

有什么更好的主意吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-21 20:32:32

如果我正确理解你,你有一个自定义的注册控制器和成功注册后,用户将登录。

我们在一个带有安全的play2 java应用程序中也有这个例子,我们的CustomRegistrationController.handleSignUp方法看起来像s.th。就像这样:

代码语言:javascript
复制
public Result handleSignUp(final String token) {
    // verify token, validate form, fill user from form etc.
    ...

    // save user in userService, delete token
    userService.doSave(user);
    userService.doDeleteToken(token);

    // login user
    final Either<Error, Authenticator> result = Authenticator.create(user);
    if (result.isLeft()) {
        // add some msg to flash, redirect to login
        ...
        return redirect(RoutesHelper.login());
    }

    // Add the auth cookie to response
    final play.api.mvc.Cookie authCookie = result.right().get().toCookie();
    response().setCookie(authCookie.name(), authCookie.value(),
        (Integer)Scala.orNull(authCookie.maxAge()), authCookie.path(),
        Scala.orNull(authCookie.domain()), authCookie.secure(), authCookie.httpOnly());

    // Add some success message
    ...
    return redirect(routes.UserSignUpController.signUpConfirmation());
}

我希望这能回答你的问题。

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

https://stackoverflow.com/questions/18356121

复制
相关文章

相似问题

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