Facebook登录现有用户数据库,并访问令牌

Hor*_*rse 4 authentication facebook login facebook-graph-api facebook-javascript-sdk

尝试将facebook登录添加到我正在处理的项目的现有登录系统上.使用FB JS SDK构建角度.这主要是为了允许无摩擦登录,目前还没有使用访问令牌来使用FB API进行进一步调用.

所以作为一个新用户,他们点击FB登录,接受权限等,然后它会激活我一个访问令牌等.新用户是在我的数据库中创建的,还有accesstokenFB userid,等等.

我现在如何使用useridaccesstoken现在存储在我的数据库中对用户进行身份验证?据我所知,访问令牌实际上每个页面加载/请求都会改变,因此下次用户点击FB登录时,或者我检查FB登录状态时,我唯一不变的就是userid.

已经对SO和FB文档进行了各种阅读,例如:

https://developers.facebook.com/docs/facebook-login/web https://developers.facebook.com/docs/facebook-login/multiple-providers https://developers.facebook.com/docs/facebook-登录/手动集结一个登录流#checktoken

如何在服务器端消费Facebook用户访问令牌?

......虽然这只会让事情进一步混乱.

我想我会把那个存储accesstoken然后检查它的有效性,但是由于访问令牌的各种实例到期和失效,这似乎也是一个不完整的解决方案.

所以我的问题是:如何在我自己的数据库中与对方用户安全地验证我的FB用户?

Jam*_*mes 6

Facebook登录请求返回用户ID +短期访问令牌(客户端).

使用服务器端Facebook SDK 检查访问令牌的有效性(如果有效,将返回user_id和app_id字段).

您可以信任从Facebook API返回的user_id字段,以检查您现有的用户数据库.