2017-02-08 9 views
0

私はUberRUSH three-legged-oauthとwebhooksに関する質問があります。UberRUSHアクセストークンでuserIdを取得する

UberRUSHユーザーに代わって動作するマルチテナントアプリケーションを開発しています。 私たちはthree-legged-oauthフローを実装しており、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を取得するために、有効で安全(それに依存する可能性があり、予測可能な将来変更されません)ですか、それとももっと簡単な方法ですか?

答えて

0

3足歩行を使用しているので、これを行う簡単な方法の1つは、ライダーAPIの/me endpointを使用することです。 UUID、rider_idで

{ 
    "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": "[email protected]", 
    "mobile_verified": true, 
    "promo_code": "uberd340ue" 
} 

、およびユーザーのための小道具を特定取得したい電子メール:それは、次のユーザーデータを提供します。あなたが認証中にprofileスコープに/ meへの呼び出しを要求する必要があることに注意してください。

+0

回答ありがとうございます。このアプローチはうまくいくかもしれませんが、失敗する可能性があるコールを1つ追加する必要があります。 userIdだけが必要な場合、デコードアクセストークンの解決法は簡単で安全ですか?このソリューションの唯一の欠点は、Uberがこのようにすることを推奨していない可能性があることです。 –

+0

ドキュメントには[アクセストークンの長さは時間の経過とともに変化する可能性があります](https://developer.uber.com/docs/riders/guides/authentication/introduction#debugging-authentication-errors)と記載されています。この変更を行う予定はありませんが、JWTフォーマットをそのまま維持する保証はありません – agraebe

関連する問題