使用UberRUSH访问令牌获取userId



我有一个关于UberRUSH三足oauth和webhook的问题。

我们正在开发代表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属性(Subject),因为我认为它包含用户的id。

我的问题是,以这种方式获取用户id是有效和安全的(我们可以依赖它吗?在可预测的未来它不会改变),还是有更简单的方法?

由于您使用的是3字节oauth,因此一种更简单的方法是使用Riders API中的/me端点。这将为您提供以下用户数据:

{
"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作用域,以便能够对/me进行调用。

最新更新