【发布时间】:2015-05-05 16:41:24
【问题描述】:
我的应用程序使用 JS Facebook API 来使用 Facebook 作为登录/通行证。当您尝试登录时会发生以下情况。
- 用户点击 Facebook 登录按钮
- Facebook 身份验证
- 如果成功。我获取用户的 Facebook ID 和姓名
- 在我的 APP 上调用我的 REST API 以检查该 FBID 是否已在我的系统中注册。
- 如果已注册,我会编写会话以验证用户是否已通过身份验证。
这很好,因为我不必存储用户名和密码。但我担心有人会在 chrome 中使用 POSTMAN 之类的 REST API 调试器,只需发送 Facebook ID 和用户名,他们就会通过身份验证。
我的问题是什么是保护我的终端的最佳方式,以防止像 POSTMAN 这样的应用程序只输入身份验证所需的字段?我错过了什么吗?任何人都可以为此推荐一个策略吗?
或者使用 CSRF 令牌是解决这个问题的唯一方法?我使用 FuelPHP 作为后端,并使用 AngularJS 和 NgRoutes 做一个单页应用程序。但是每次我在燃料上启用 CSRF 时,传递的令牌与后端的令牌不匹配。
我的印象是,这是由于 javascript 令牌功能位于主页中,ng-view.我知道这可能与 ngRoutes 有关。
【问题讨论】:
-
将用户存储在您的数据库中,但在数据库中为
provider有一个额外字段,例如“facebook”或“myApp”或“twitter”等。外部提供商在用户最初向您发送一些用户数据接受连接到您的应用 -
@charlietfl 例如像在 FB 中一样,我是否也应该存储用户身份验证时它给出的 access_token 和秘密?
-
老实说...我已经有一段时间没有设置了,也不记得用户同意时返回数据的细节。我将不得不查看文档。但是您也可以随时为该用户分配令牌
标签: angularjs api rest facebook-graph-api fuelphp