验证 Facebook Connect 会话

发布于 2024-10-05 17:00:38 字数 205 浏览 1 评论 0原文

我正在编写一个应用程序,它有多个前端客户端,使用 Facebook Connect 作为单点登录解决方案。

例如,其中一个客户端在 iOS 平台上运行,因此所有 Facebook 身份验证都通过 iOS Facebook SDK 在客户端上进行。然而,在用户在客户端上进行身份验证后,由于我使用 Facebook 登录我们的网站,服务器是否可以从客户端获取身份验证数据并进行验证?

I am writing an application which has multiple frontend clients using Facebook Connect as a single signon solution.

One of these clients, for example is running on the iOS platform, so all fb authentication happens on the client via the iOS Facebook SDK. After a user authenticates on the client, however, since I am using Facebook for signing in to our site, is there anyway for the server to take the auth data from the client, and verify it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

比忠 2024-10-12 17:00:47

使用 Javascript SDK,调用 FB.getSession() 来获取具有各种与身份验证相关的位的 JS 对象。其中,将“access_token”、“expires”、“secret”、“session_key”、“uid”和“sig”传递到您的服务器。

在服务器端检查调用是否真实,将它们连接到一个字符串中,例如“access_token=1290380d9e&expires=92d903&secret=e9cj9kd&session_key=s49i9i3f&uid=12345”。所以你刚刚通过的一切,除了标志。

在此字符串中,连接您可以从 Facebook 开发者网站 获取的“应用程序密钥”。获取字符串的 MD5 hexdigest(在 Python 中 import md5;md5.new(foobar).hexdigest())并进行比较,看看它是否与您传递的“sig”相同。

Using the Javascript SDK, call FB.getSession() to get a JS object with various auth-related bits. Of these, pass 'access_token', 'expires', 'secret', 'session_key', 'uid' and 'sig' along to your server.

On server-side to check if the call is authentic, concat these into a string such as "access_token=1290380d9e&expires=92d903&secret=e9cj9kd&session_key=s49i9i3f&uid=12345". So everything you just passed, EXCLUDING the sig.

To this string, concat the "app secret" which you can get from Facebook developer site. Take the MD5 hexdigest (in Python import md5;md5.new(foobar).hexdigest()) of the string and compare to see if it is the same as the 'sig' you passed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文