6

我将 Wordpress + WooCommerce 与 WP-API 结合使用作为我的移动电子商务应用程序的后端。

我的目标是在应用程序中提供一些社交登录(通过 Facebook、Twitter、Google 等)来注册/登录,然后使用 WooCommerce API 接收例如该经过身份验证的用户的所有订单。

目前我的计划是:

  1. 使用一些客户端 SDK,以便用户例如可以使用他的 FB 帐户登录
  2. 从第 1 步开始,我得到例如用户名、电子邮件和 FB ID,它们被发送到自定义端点以将用户添加到 Wordpress DB(如https://github.com/royboy789/wp-api-social-login
  3. 使用 WP-API 为订单创建自定义端点(例如:.../orders)
  4. 在端点函数中检查用户是否经过身份验证
  5. 如果用户通过身份验证,则端点使用 WooCommerce API 包装器(https://github.com/kloon/WooCommerce-REST-API-Client-Library)返回用户的订单

但我在#3 上苦苦挣扎,因为我真的不知道如何检查用户是否经过身份验证。

我考虑创建另一个端点,该端点将联系 OAuth 授权服务器以使用例如 Facebook 的访问令牌检查用户的凭据。如果检查有效,我将使用用户 ID、电子邮件等的一些散列为我的 API 创建一个自定义访问令牌,这些哈希将被发送回客户端应用程序。然后这个访问令牌用于对我的 API 的每次调用,然后从哈希令牌中读取用户 ID 并返回例如该用户的所有订单。

但不知何故,这感觉不对。特别是因为这样我会创建一个无尽的生活访问令牌......

4

1 回答 1

0

完成 #2 后,来自 WP 的 HTTP 响应将包含身份验证 cookie:请参阅https://github.com/royboy789/wp-api-social-login/blob/master/inc/social-routes.php#L31在问题指向的示例中。

不确定您在应用程序中使用的是什么 HTTP 库,但如果您保存在响应中收到的 cookie 并在对服务器的所有后续请求中重复使用它们,那么应该注意身份验证:您不需要额外的检查/访问点,因为登录/注册会自动将用户登录,并且标准的 WP cookie 检查负责对新请求的验证。

于 2019-04-03T22:56:18.440 回答