我们没有在Stormpath中存储任何用户凭据,只有我们需要Stormpath为我们验证用户身份。
这是我的场景:我在Stormpath创建了一个Facebook目录,用户通过Facebook注册并在目录中创建了一个帐户。下次同一用户通过Facebook登录时,我们会检索该帐户并查看该帐户是否为现有(非新)帐户。
我的问题是:只有了解用户帐户(新用户帐户或现有用户帐户)才是验证用户身份的有效流程?当Stormpath第二次验证用户时,Stormpath有没有办法返回用户的Facebook ID?
对我来说主要关注的是:
每次通过Facebook登录时,有哪些有效或安全的方式对用户进行身份验证?
答案 0 :(得分:2)
如果我正确理解您的问题,在使用Facebook登录过程中,您希望获得用户的Facebook ID。 Stormpath只返回Facebook Access Token,但您可以使用它来轻松获取Facebook ID。
当您使用Facebook登录Stormpath时,会向Stormpath API发出请求。所做的请求如下所示:
{
"providerData": {
"providerId": "facebook",
"accessToken": "USER_ACCESS_TOKEN_FROM_FACEBOOK"
}
}
如果您正在使用SDK,则在登录后,将自动向帐户端点发布请求。如果您仅使用REST API,则必须手动向帐户端点发送请求。
请求完成后如果一切正常,您将获得一个Stormpath帐户对象。当你得到这个时,你将能够从包含Facebook访问令牌的对象中获得providerData
。可以在documentation中找到对此的参考。
从提供者数据获得访问令牌后,您可以使用Facebook API访问应用程序允许的任何范围。
免责声明:我是Stormpath的雇员。