微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 在我自己的REST API上验证从Facebook收到的凭据

我和我的团队正在开发一个Android原生移动社交网络,允许用户使用Facebook登录.我已经设法实现了适用于Android的Facebook SDK,但我正在努力弄清楚如何正确/安全地验证使用Facebook登录用户以及仅从Facebook收到的凭据.目前我的系统如何:

步骤1.从Android客户端,用户按下登录Facebook并授予我的应用程序权限.

步骤2.在用户授予我们的权限后,Facebook会向我们发送一个响应,其中包括用户fb用户ID,电子邮件和令牌(如果这是用户第一次使用Facebook登录,则会显示其他信息)

步骤3.将信息发送到我们的API进行身份验证

这是我有点不清楚….我如何验证我的服务器上的Facebook凭据?

截至目前我只是检查我的数据库,收到了fb_uid和fb_email的现有用户,但任何人都可以获得任何人fb_uid,并且找到他们用来注册Facebook的电子邮件并不是那么难,这意味着有人可能很容易入侵另一个用户帐户有伪造的http请求.

解决方法:

access_token(如果有效)将允许您访问您的应用已请求访问权限的某些用户Facebook数据.验证您收到的凭据是否正确的一种方法是使用该access_token来查询Facebook.

例如,this page suggests how to open up the access_token properties使用GET调用

GET graph.facebook.com/debug_token?
 input_token={token-to-inspect}
 &access_token={app-token-or-admin-token}

然后返回:

{
    "data": {
        "app_id": 138483919580948, 
        "application": "Social Cafe", 
        "expires_at": 1352419328, 
        "is_valid": true, 
        "issued_at": 1347235328, 
        "Metadata": {
            "sso": "iphone-safari"
        }, 
        "scopes": [
            "email", 
            "publish_actions"
        ], 
        "user_id": 1207059
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐