使用社交登录(OAuth)

时间:2015-07-01 21:38:04

标签: wordpress oauth oauth-2.0 woocommerce wp-api

我正在将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
  6. 但我在#3努力,因为我真的不知道如何检查用户是否经过身份验证。

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

    但不知怎的,这感觉不对。特别是因为这种方式我创造了一个无尽的生活访问令牌...

1 个答案:

答案 0 :(得分:0)

完成#2后,来自WP的HTTP响应将包括auth cookie:请参见问题所指向的示例中的https://github.com/royboy789/wp-api-social-login/blob/master/inc/social-routes.php#L31

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