我正在构建移动应用程序(使用PhoneGap / Cordova)。
为了使用我的应用程序,客户端必须通过Facebook进行身份验证。
我想使用facebook auth机制来保护我的wcf服务。我正在考虑使用它:
首次注册:
- 客户登入facebook并获取访问令牌
- 客户端将其访问令牌发送到我的wcf服务
- 在我的服务中,我扩展访问令牌(以获取长期存在的令牌),并将其存储在DB中,并为新成员创建新记录
- 我使用扩展令牌和成员ID
向客户端发送响应
- 客户端将令牌和成员ID存储在其移动设备中
醇>
当客户进入申请时:
- 客户重定向到faceebok
- 如果facebook验证失败(可能是由于各种原因),他会重新授权我的申请。
- Facebook使用新令牌将客户端重定向回我的应用程序
- 如果未更改令牌(与设备中存储的令牌相比),请中断。
- 客户端向我的wcf服务发送旧令牌+新令牌
- wcf将收到的旧令牌与db中存储的令牌(使用成员ID)进行比较以识别客户端,如果不相等则引发异常。
- 在我的服务中,我扩展了访问令牌(以获取长期存在的令牌),并将其存储在数据库中
- 我使用扩展令牌
向客户发送回复
- 客户端使用移动设备中的新令牌覆盖旧令牌
醇>
对于我的移动应用程序到我的wcf服务的每个请求:
- 客户端发送请求,它传递的第一个参数是他存储在设备中的facebook令牌。第二个参数是成员ID。
- wcf将收到的令牌与db中存储的令牌(使用成员ID)进行比较以识别客户端,如果不相等则引发异常。
- 处理请求
醇>
为了得出结论,我使用facebook标记来识别客户端。此外,我可以使用SSL在网络级别进行保护。这是一个好方法吗?谢谢你的帮助。