Facebook SDK和OAuth 2.0 - 在JavaScript和重定向中使用令牌

时间:2011-12-21 16:47:02

标签: javascript facebook oauth facebook-javascript-sdk oauth-2.0

当从Facebook JS SDK login()调用回来时,我得到一个cookie设置在我身边: 恩。 (我已经改变了一些字符)

fbsr_17066472650000: edmYrII1FpD8TfeBCDcgO5ri0aRDFfh5e4efESdXlaU.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImNvZGUiOiJBUUNuVW1aS3A4U3p0a0RmNzhLR1FwTE5wSHpasdfafdasdfaVnVfOWo3c01oUFRaYVhjR3FTUFRFRHJrX2Ezasdfadadfasfasfda5ZektURV9xQWxaREV1WlVVZ2hFcDJTVVc4ZVB6d2tmRTVhRHY0RXpRdVhFa0xMd3hKS3gxckMyV1Y4aks1cmtNSHFWZVBaMWpQQklrQkVORDh4ZWtQd0pxUDlLYmMiLCJpc3N1ZWRfYXQiOjEzMjQ0ODUwNjksInVzZXJfaWQiOiI1MTUxNzcxNDcifQ

说这个字符串分解为:

是否正确
fbsr_{appId}:{token}

这是真正的令牌吗?还是我需要加密/解密?

最后,如何在登录后使用以下内容重定向到另一个页面:

window.location.href='foo.php';

更新1:
我在服务器端解密过程中得到了这个。这似乎不正确。或者这是我应该期待的? (注意:我稍微改变了一些数据)

{"algorithm":"HMAC-SHA256",
  "code":"AQDnemhHwRHAv1pSI2TjKkO4x36GasdfadfasfdQKJn6Sqh8qgJNnCtzA5C41Y5TvRIp94BWQNTprLVyc4PHmYCPG0jOxkUpJ3RnviYW3p-f9lbWn32qkv7NZv-8T42j6_X3l4IMjH-Nthh7LAIaiy8YradJmRzXQwaKpDP5TP6JssrMFbHYYnRrMA",
"issued_at":1324491454,
"user_id":"515100000"}

1 个答案:

答案 0 :(得分:1)

您所谓的令牌实际上是signed_request,它是用户编码的会话详细信息。

用户登录后您想要的重定向可以通过提供Facebook Login Dialog网址的redirect_uri参数来触发。

有关详细信息,请参阅Facebook Authentication documentation

虽然您需要在服务器端signed_request上进行解密(PHP-SDK可以用于此目的),但如果您使用Facebook JavaScript SDK,则不需要进行解密。提供FB.getAuthResponseFB.getLoginStatus来获取用户会话详细信息。