使用UberRUSH访问令牌获取userId

时间:2017-02-08 10:26:46

标签: uber-api

我有一个关于UberRUSH三条腿 - oauth和webhooks的问题。

我们正在开发代表UberRUSH用户的多租户应用程序。 我们正在实施三条腿oauth流程,我们希望使用webhook来更新交付状态。

在webhooks文档(https://developer.uber.com/docs/deliveries/guides/webhooks)中,我读到UberRUSH事件将包含有关传递ID(meta.resource_id)和用户ID(meta.user_id)的信息。

由于我们将我们的实体内部存储在单独的租户(每个UberRUSH用户的单独租户)中,我们需要将事件user_id映射到我们的租户名称。 我可以考虑构建此类地图的唯一方法是基于我们保留的用户访问令牌。我们可以解码它(JWT)并读取它的sub属性(主题),因为我认为它包含用户的id。

我的问题是,它是否有效且安全(我们可以依赖它并且在可预测的未来不会改变)以获得用户的ID,或者可能有更简单的方法吗?

1 个答案:

答案 0 :(得分:0)

由于您使用的是3-legged-oauth,一种更简单的方法是使用Riders API中的/me endpoint。这将为您提供以下用户数据:

{
  "picture": "https://d1w2poirtb3as9.cloudfront.net/f3be498cb0bbf570aa3d.jpeg",
  "first_name": "Uber",
  "last_name": "Developer",
  "uuid": "f4a416e3-6016-4623-8ec9-d5ee105a6e27",
  "rider_id": "8OlTlUG1TyeAQf1JiBZZdkKxuSSOUwu2IkO0Hf9d2HV52Pm25A0NvsbmbnZr85tLVi-s8CckpBK8Eq0Nke4X-no3AcSHfeVh6J5O6LiQt5LsBZDSi4qyVUdSLeYDnTtirw==",
  "email": "uberdevelopers@gmail.com",
  "mobile_verified": true,
  "promo_code": "uberd340ue"
}

使用uuid,rider_id和电子邮件,您可以识别用户的道具。请注意,您需要在身份验证期间请求profile范围才能拨打/我。