当天的问候!!!
我们正在开发一个包含UBER汽车租赁API服务的门户网站,我在这里附上我们的应用程序屏幕截图,其中我们已经集成了汽车的UBER API并完成了大部分开发。
我们现在的主要障碍是双重身份验证。第一个用户来到我们的门户网站并注册自己,如果他将从这里用户租车服务,那么他需要再次登录UBER网站然后他将能够使用它的服务。但我们需要该应用程序将使用我们的数据库详细信息并获取用户的登录详细信息,通过该详细信息登录门户网站,并且基于他能够从优步订购出租车。
请进一步提供指导,以便进一步了解我们将为此一次性身份验证所做的工作。目前,我们是UBER的附属合作伙伴,但为了进一步了解我们需要采取的流程,我们可以进一步推动应用程序,因为这对于门户开发的业务逻辑非常关键,并提供用户UBER的出租车设施。
请尽快指导我们。
答案 0 :(得分:2)
请参阅here了解使用优步API验证用户的演练。
当用户完成身份验证时,您需要在该演练的第3步中将access_token
与响应相关联。
总结
将用户发送到Uber的OAuth页面,其中包含查询字符串中所需的参数:
https://login.uber.com/oauth/v2/authorize?scope={{ scopes }}&response_type=code&client_id={{ client_id }}&redirect_uri={{ redirect_uri }}
client_id
位于“设置”下的developer dashboard。
redirect_uri
应与您在“授权”下的开发者信息中心中注册的URI相对应。
scopes
应与您在检索重定向URI的表单下方检查的相同框对应。 request+profile+history
。
使用Uber登录并授权您的应用后,用户将被发送到您的重定向URI。 URI的查询字符串将包含code
参数。这是用户的授权码。在下一步中,您将把它发送回优步,以换取您代表此用户提出请求所需的访问令牌。保存此授权码以进行下一步。
向https://login.uber.com/oauth/v2/token
发送HTTP POST请求。包括以下JSON正文:
{
"client_secret": "{{ client_secret }}",
"client_id": "{{ client_id }}",
"grant_type": "authorization_code",
"redirect_uri": "{{ redirect_uri }}",
"code": "{{ insert authorization code obtained in previous step }}"
}
步骤3中对请求的响应中access_token
字段下的值是您代表该用户向Uber发出请求所需的值。代表该用户在所有请求中包含Authorization: Bearer {{ access_token }}
标头。您需要将此令牌保存在数据库中,以便用户无需在每次要使用您的应用时都通过OAuth流程。
带有访问令牌的示例请求,使用cURL:
curl -H "Authorization: Bearer {{ access_token }}" https://api.uber.com/v1/me
(注意:此请求仅在您成功要求您的用户向您的应用授予profile
范围时才有效。)