Fil*_*ipR 5 security facebook-graph-api access-token oauth-2.0
我想让用户有可能在我的应用程序中使用一些外部oauth2提供程序(facebook)登录.客户端部分在本机应用程序中的移动设备上运行.
我不确定下面哪种方法我更喜欢?
A)客户端是否应该在每次请求时通过Facebook发送用户的访问令牌?在每个请求后端要求facebook验证访问令牌.根据验证结果,后端执行授权并将相应的结果返回给客户端.
或者B)后端是否要求facebook 仅在用户登录时验证访问令牌,然后发出自己的访问令牌,将访问令牌返回给客户端,客户端将使用此访问令牌向服务器发出请求以避免与Facebook发生冲突在每个请求?
我已经阅读了一些关于如何使用facebook实现auth的问题,而且大多数开发人员正在使用B,但我没有看到任何解释为什么使用A的好/坏?
我认为解决方案的好处:
A)后端不需要关心发布,刷新,验证访问令牌,因为这只能由facebook的授权服务器完成.
B)这个解决方案似乎更有效,因为它不需要在每次请求时连接到facebook.
Facebook 发行的安全令牌是用数字签名签署的。API 服务器只需要访问公钥即可验证签名。用户通过身份验证后根本无需联系 Facebook。
在用户登录 Facebook 后颁发您自己的令牌的一个原因可能是向令牌添加声明。但显然拥有自己的授权服务器是有代价的。由你来权衡利弊。
如果您决定拥有自己的授权服务器,请确保不要编写自己的授权服务器!有一些开源选项,例如Thinktecture IdentityServer。
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |