小编dye*_*ryn的帖子

App Engine Java - 目前使用联合登录/ Openid - 我应该如何坚持成功通过身份验证的Facebook用户?

我的Google App Engine Java应用程序很好地使用openid/federated登录.

我保存了一个UserProfile对象,一旦我们有一个登录用户保存对UserService.getCurrentUser()对象(及其用户ID)的引用,我就会这样保存:


    UserService userService = UserServiceFactory.getUserService();
    user = userService.getCurrentUser();
    userId = user.getUserId();
    profile = UserProfileBin.getInstance().getByUserId(user.getUserId());
    if (profile == null) {
        profile = new UserProfile();
        profile.setUser(user);
        profile.setUserId(user.getUserId());
        profile.setCreatedDate(new Date());
        pm.makePersistent(profile);
        id = profile.getId().getId();
    }
Run Code Online (Sandbox Code Playgroud)

...

嗯,这一切都在极好地工作.我正在使用openId选择器,并使用一堆不同的openid提供程序登录到应用程序.没有问题.

现在,我想让人们使用他们的facebook登录,我也有这个部分.我正在使用服务器端身份验证流程.我能够完成授权并检索访问令牌,我正在使用restFB.我可以连接到图形api并获得我需要的任何东西.

所以我的问题是:我不知道最好的方法是获取这些信息并让我的应用知道有人登录了.

我假设Userservice.getCurrentUser()是不行的.

我看到OauthService.getCurrentUser().如果"知道"我有一个Facebook用户登录,那将是非常棒的.然后我的用户检查就是:


User user = UserService.getCurrentUser()
if(user == null)
{
    user = OAuthService.getCurrentUser();
}
Run Code Online (Sandbox Code Playgroud)

我快乐地走了.

但是,我没有看到用OAuthService或任何东西注册我的Facebook用户的方法.

我确信之前已经完成了.

我该怎么办呢?有没有一种可爱的方式来做到这一点,或者我是否坚持开启会话并为我的Facebook用户制作自定义用户对象并将其粘贴在会话中并运行过滤器?

java google-app-engine facebook login oauth

6
推荐指数
1
解决办法
1021
查看次数

标签 统计

facebook ×1

google-app-engine ×1

java ×1

login ×1

oauth ×1