2

我正在构建移动应用程序(使用 PhoneGap/Cordova)。为了使用我的应用程序,客户端必须通过 facebook 进行身份验证。

我想使用该 facebook 身份验证机制来保护我的 wcf 服务。我正在考虑这样使用它:

首次注册:

  1. 客户端登录 facebook 并获取访问令牌
  2. 客户端将其访问令牌发送到我的 wcf 服务
  3. 在我的服务中,我扩展了访问令牌(以获取长期令牌),并将其存储在数据库中,并为新成员创建一条新记录
  4. 我使用扩展令牌和成员 ID 向客户端发送响应
  5. 客户端将令牌和成员 ID 存储在其移动设备中

当客户端进入应用程序时:

  1. 客户重定向到 faceebok
  2. 如果 facebook 的身份验证失败(可能是由于各种原因),他会重新授权我的应用程序。
  3. Facebook 使用新令牌将客户端重定向回我的应用程序
  4. 如果令牌未更改(与设备中存储的令牌相比),则中断。
  5. 客户端向我的 wcf 服务发送旧令牌 + 新令牌
  6. wcf 将接收到的旧令牌与 db 中存储的令牌(使用成员 ID)进行比较以识别客户端,如果不相等则引发异常。
  7. 在我的服务中,我扩展了访问令牌(以获得长期令牌),并将其存储在数据库中
  8. 我使用扩展令牌向客户端发送响应
  9. 客户端用其移动设备中的新令牌覆盖旧令牌

对于从我的移动应用程序到我的 wcf 服务的每个请求:

  1. 客户端发送请求,它传递的第一个参数是他存储在设备中的 facebook 令牌。第二个参数是成员ID。
  2. wcf 将接收到的令牌与 db 中存储的令牌(使用成员 ID)进行比较以识别客户端,如果不相等则引发异常。
  3. 处理请求

最后,我使用 facebook 令牌来识别客户。此外,我可以使用 SSL 在网络级别进行保护。这是一个好方法吗?谢谢您的帮助。

4

0 回答 0