又一个 Facebook 登录问题。
我正在构建一个使用 Facebook javascript 身份验证和登录的单页网站。我不希望任何页面重新加载,并希望用户随时登录 Facebook。登录 facebook 会改变我的本地视图(使用backbone.js),但不应该刷新页面。虽然页面没有刷新,但我想让服务器端(抛出 REST api)“知道”用户的 uid
我以前使用过服务器端身份验证,但希望只使用客户端身份验证。(出于各种原因)
基本上我遵循http://developers.facebook.com/blog/post/534/但我的服务器是 node.js
这就是我看到流程的方式:(使用restful API)
1. User enter site
2. FB JS SDK login/authenticate user
a. FB SDK has obtained access_token (valid for an hour)
b. signed request is saved in cookie data (fbsr_<app id>)
3. Browser issue any REST API call to Server
a. server looks into cookie to identify uid
Parse the signed_request
Validates sigend_request with application secret
identify uid from parsed signed_request
b. if needed to store long live access token
Server exchange code for tokenA
Server exchange tokenA for longed lived access token (valid for 2 month - fb_exchange_token)
问题:
- 为什么我不应该将访问令牌从客户端移动到服务器而不是signed_request?
- 这个流程安全吗?
- 这是好习惯吗?
谢谢