我的公司正在开发一个如下工作的系统:
有一个iphone/mobile应用程序和一个提供rest服务的php服务器。
在移动应用程序中,用户可以通过两种方式注册/登录:
- 用户名/密码对
- facebook帐户
而点1。很清楚,我在第2点遇到了困难:
据我所知,序列应该如下:
1-应用程序向fb发送用户数据,fb以某种方式表示我不在乎验证用户,并回答"好吧,是你"。2-应用程序现在必须向php服务器请求一些用户数据。
用户在应用程序中使用fb登录后,我如何验证服务器和应用程序之间的通信?
我不能只要求"把用户fbid的数据发给我",因为只要一个简单的请求,任何人都可以检索到。
这就是您使用"密钥"(facebook设置的一部分)的原因。
当用户通过你的应用程序登录时,他们会批准与你的应用共享信息,并获得一个令牌-令牌是会话id。该会话id只能由该用户使用,从你的应用的手机中使用-除非你有"密钥"。
然后,手机将该会话ID传递给服务器。
然后,服务器传递令牌和密钥,脸书会向服务器返回与用户在手机上相同的信息。这就是它进行身份验证的方式。
任何其他人(除了手机上的用户)没有密钥,令牌都是无用的。