首页 文章

使用Facebook访问令牌是一种安全的方式来验证用户?

提问于
浏览
3

在我的应用程序上,用户可以登录Facebook,然后应用程序拥有用户的访问令牌(比如'abc'),我想使用此令牌在我自己的服务器上创建用户 .

将此访问令牌发送到我的服务器(使用SSL)是否安全,然后在我的服务器上使用https://graph.facebook.com/me?access_token=abc获取用户的用户名和ID,并检查令牌所属的应用程序是我的https://graph.facebook.com/app?access_token=abc . 如果是我的应用程序,则将用户存储在用户的数据库中和/或将其登录 .

这个系统会被愚弄吗?你能想到某人可以像其他人一样登录的方式吗?

2 回答

  • 1

    您应该查看所有Authentication文档和Oauth规范,以查看可用的不同身份验证流程

    一般来说,您可以根据访问令牌在服务器上创建用户,并且可以合理地确定当您从Facebook获取访问令牌以获得与同一个人相同的用户ID时 .

    如果您对应用程序需要非常高的安全性,您可以采取措施确保用户通过恶意软件或Facebook用户被欺骗产生,有一个示例显示Server Side Authentication文档中针对CSRF的保护,并且还有一个reauthentication流程您可以使用

  • 2

    我假设您正在使用facebook sdk,如果是这样的话,facebook sdk会为您处理安全问题而您不必担心任何事情 . 假设您在没有sdk的情况下访问api那么有两件事情必须注意:

    1)Auth令牌经常过期(facebook已经花了很大力气确保用户受到保护)

    2)仅使用auth令牌发出请求是不够的,还有一些其他需要的参数是无法伪造的,特别是如果您正在执行此服务器端,因为添加了额外的层,fb调用服务器流认证

    3)最重要的是,为了让应用程序访问某些数据,用户必须提供许多权限 . 下面的链接提供了一篇关于身份验证的好文章,你可以看看

    https://developers.facebook.com/docs/authentication/

    长话短说这是安全的 .

相关问题