【问题标题】:How to get code from UBER's authorise api如何从 UBER 的授权 api 获取代码
【发布时间】:2017-09-15 04:13:21
【问题描述】:

我正在尝试使用以下 url 使用 postman 从 json 获取代码。但可以获取 json 中的代码。

uber login link

此外,当我在浏览器中点击此 url 时,我将使用查询参数重定向到我的 localhost url,我可以在其中获取代码。

第 1 步。使用您的客户端 ID、客户端密码、范围和重定向回调 URI 创建一个 OAuth2Credentials 对象,以捕获用户的授权代码。

SessionConfiguration config = new SessionConfiguration.Builder()
.setClientId("YOUR_CLIENT_ID")
.setClientSecret("YOUR_CLIENT_SECRET")
.setScopes(yourScopes)
.setRedirectUri(redirectUri)
.build();

OAuth2Credentials credentials = new OAuth2Credentials.Builder()
.setSessionConfiguration(config)
.build()

第 2 步。从 OAuth2Credentials 对象将用户导航到授权 URL。

String authorizationUrl = credentials.getAuthorizationUrl();

第 3 步。用户批准请求后,您将获得授权码。创建一个凭证对象来存​​储授权码和用户 ID。

Credential credential = credentials.authenticate(authorizationCode, userId);

我对第 2 步和第 3 步感到困惑。

- 在步骤 2 中我应该如何处理 authorizationUrl ? - 如何在第 3 步中使用 authorizationUrl 获取授权码?.

【问题讨论】:

    标签: json rest api oauth-2.0 uber-api


    【解决方案1】:

    您应该遵循 developer docs 中记录的 OAuth2.0 流程。基本上,您配置您的 OAuth2.0 设置。您的设置将生成一个特定的身份验证 URL(包括 client_id 和请求的范围)。此 URL 需要在 web 视图中打开。您的用户必须使用他们的 Uber 帐户登录并批准或拒绝访问范围。这是您在第 2 步中获得的 URL。

    如果用户在auth webview中点击approve,配置的redirect URI将会通过Uber服务器被调用。此回调将具有授权代码的 URL 参数。

    【讨论】:

    • 是的。我知道授权码,但是一旦我获得授权码,我就可以获得令牌,并且授权码会在 10 分钟内过期。现在我的consufion是使用回调URL授权代码是一次性的工作吗?如果我重新启动服务器并且我没有令牌怎么办?我必须接受新的授权码吗?
    • 授权码不是你的最终令牌。您必须使用它来获取访问令牌。您必须将访问令牌存储在您的数据库中(与用户相关联)。访问令牌有效期为 30 天,如实际令牌响应中的 expires_in 所定义。 Described in "Get an Access Token" step in the docs。如果您没有通过授权码获取访问令牌,则授权码会在 10 分钟后过期。用户基本上授权您访问范围,您必须对此采取行动
    猜你喜欢
    • 2018-01-12
    • 1970-01-01
    • 2015-07-23
    • 2019-05-11
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    • 2016-08-12
    相关资源
    最近更新 更多