facebook - 如何将 Facebook 单点登录集成到现有的用户/密码登录方案

标签 facebook authentication

我正在使用 Facebook 身份验证来证明我的客户端软件(iOS 原生)代表某个 FB 用户行事。但是,我的客户端如何向我的服务器证明这一点,它有自己的登录方案。我猜它需要将 FB access_token 传递给我的服务器,以便我的服务器可以查询 Facebook 以获取用户身份?

或者,有没有办法让 Facebook 存储我自己的访问凭证(我现有注册系统的用户名 + 密码)?那么,在 Facebook 登录后,我的客户会从 Facebook 获取它的用户名和密码并使用它来登录我的系统?

最佳答案

好的,这是我对同一问题的务实解决方案。

authenticate your iOSApp with facebook .这会给你一个 access_token 然后你可以 get the user's facebook id (fb_id) from facebook .

您现在想要使用此身份验证来验证对与 iOSApp (yourService) 相关的某些服务的请求。

发送 fb_id access_token 使用您对 yourService 的安全请求(例如使用 https)。

yourService 然后使用 fb_id access_token 进行任意社交图调用,例如:

https://graph.facebook.com/ fb_id ?field=name&access_token= access_token

如果 ,这个调用将返回一个适当的错误。 access_token 无效或不匹配 fb_id 因此 yourService 现在可以根据返回值满足或拒绝请求。

yourService 和 iOSApp 可以根据 access_token 的权限和状态读取或修改 FB 图,但如果您只是想在用户已经通过您的 iOSApp 进行身份验证时使用 yourService 进行身份验证,则以上就是您所需要的。

关于 access_token 的传输,FB 政策可能存在一些问题,但只要您使用 https 进行传输,它就与 iOSApp 和 Facebook 之间的交换一样安全。

关于facebook - 如何将 Facebook 单点登录集成到现有的用户/密码登录方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10594542/

相关文章:

ruby-on-rails-3 - 无法使用 Capybara 登录到 ActiveAdmin/Devise

javascript - NodeJS 和 Express 身份验证中间件无法正常运行

asp.net - facebook api 版本 2.4 不从 owin facebook 身份验证选项返回电子邮件?

facebook - yoast创建了多个og图像标签,如何只使用我定义的一个?

javascript - Facebook:如何为我博客的每个帖子生成 Facebook 评论代码

facebook - 当网站使用 SSL 时,accounts-facebook 因 SecurityError 而失败

java - java中rest API的身份验证失败错误

java - 使用 facebook 登录 Android 应用程序时出现错误

authentication - 在 Subversion 中,我可以成为登录名以外的用户吗?

c# - 从 C# 表单登录 Skype