使用REST

时间:2016-05-05 07:00:55

标签: spring facebook rest login openam

我期待使用Facebook的身份验证整合用户的日志记录。我的应用程序受OpenAM保护,用户已经在那里注册。我有自己的登录页面,不想将其移动到OpenAM并将其保留在我的应用程序中。截至目前,我正在使用REST调用来验证OpenAM中的用户。现在,我想使用Facebook集成登录。我的实施想法如下:

  1. 用户使用原始凭据登录并在中进行身份验证 OpenAM。
  2. 要求用户将他/她的Facebook帐户与     OpenAM帐户。
  3. 用户验证他/她的Facebook帐户         (https://www.facebook.com/dialog/oauth?app_id= {应用ID-作为创建-在-FB-开发商控制台}&安培; REDIRECT_URI = {我的静止服务})。
  4. 这将返回代码并可用于重新检查 Facebook确保用户通过我的应用程序进行身份验证 这不是黑客干预 (http://graph.facebook.com/debug_token?%20input_token= {代码返回从 - 实}&安培; =的access_token {我-app's存取令牌}。 响应将包含可以针对我的身份验证的应用ID 应用程序的ID。成功之后,我将调用OpenAM来关联用户 OpenAM与他/她的Facebook凭据(不确定要使用什么 在这里。)
  5. 接下来,每当用户想要登录时,他/她都可以使用Facebook 登录重定向URL中的哪个位置是我的REST服务和 从Facebook返回的代码可以从Facebook重新检查然后 将调用OpenAM进行身份验证。
  6. 我的疑问:

    1. 我不确定这种方法是否可行。
    2. 如何将OpenAM中的现有用户与Facebook帐户配对?
    3. 如何在Facebook登录后在OpenAM中对用户进行身份验证 userID?
    4. 是Facebook用户ID(数字,以JSON格式从Facebook图表返回 回应),独特而永久?
    5. 我还想让用户选择解除关联 现有的Facebook帐户并关联一个新帐户 - 我该怎么做?
    6. 对于提出太多问题的道歉,但我是OpenAM和OAuth的新手,并热衷于遵循我上面提到的方法。 谢谢。

1 个答案:

答案 0 :(得分:0)

顺便说一句,如果您将所有登录委托给OpenAM,并且让它处理本地登录和社交,那么将来可能会容易得多。这将使添加更多社交提供者变得非常容易。

如果您想保留当前的体系结构,可以在OpenAM中创建一个只具有社交(facebook)登录的新身份验证链。您应该能够将用户重定向到该链。社交登录过程完成后,您可以将OpenAM重定向回您的应用程序页面。

要链接本地和社交登录,您必须在申请中提供某种声明。在他们进行社交登录后,您可以要求他们通过提供用户名和密码来链接他们的本地帐户。您可以调用OpenAM的REST API来验证凭据。

这种链接可能会让用户感到困惑 - 因此有时最好将它们视为单独的帐户,或者让迁移过程让用户仅迁移到社交。