2

我们没有在 Stormpath 中存储任何用户凭据,只需要 Stormpath 为我们验证用户身份。

这是我的场景:我在 Stormpath 中创建了一个 Facebook 目录,一个用户通过 Facebook 注册并在该目录中创建了一个帐户。下次同一用户通过 Facebook 登录时,我们检索该帐户并查看它是一个现有的(不是新的)帐户。

我的问题是:只有了解用户帐户(新的或现有的)是验证用户的有效过程?当 Stormpath 第二次对用户进行身份验证时,Stormpath 有什么方法可以返回用户的 Facebook ID?

我主要担心的是:

每次通过 Facebook 登录时验证用户的有效或安全方法是什么?

4

1 回答 1

2

如果我正确理解您的问题,在使用 Facebook 登录的过程中,您希望获取用户的 Facebook ID。Stormpath 只返回 Facebook 访问令牌,但您可以使用它轻松获取 Facebook ID。

当您使用 Facebook 登录 Stormpath 时,会向 Stormpath API 发出一个发布请求。发出的请求将如下所示:

{
    "providerData": {
      "providerId": "facebook",
      "accessToken": "USER_ACCESS_TOKEN_FROM_FACEBOOK"
    }
}

如果您正在使用 SDK,则在登录后,对帐户端点的发布请求将自动发生。如果您仅使用 REST API,则必须手动向帐户端点发布请求。

一旦请求完成并且一切正常,您将获得一个 Stormpath Account 对象。当您取回它时,您将能够providerData从包含 Facebook 访问令牌的对象中获取 。可以在文档中找到对此的参考。

从 Provider Data 获得访问令牌后,您可以使用 Facebook API 访问您的应用程序允许的任何范围。

免责声明:我是 Stormpath 的员工。

于 2015-12-18T17:39:52.823 回答