uber api - Take Me Home Now app - 无效访问令牌 - 节点JS

时间:2016-05-18 03:40:03

标签: node.js express oauth-2.0 uber-api

我正在尝试实施此原型应用:https://github.com/agraebe/Take-Me-Home-Now作为免责声明,我对Node JS和API集成相当新。我想让代码正常运行,以表明我正确实施了这个OAuth2工作流程,并将此应用视为实践该方法的好方法。

我无法获取访问令牌并收到错误:当我转到localhost:1455时无效的访问令牌,然后点击"登录以请求乘坐"按钮。

我在stackoverflow上看到了各种原因。一个可能是我需要得到优步批准的请求。我不会这么认为,因为代码使用的是沙盒,而不是生产。

我的重定向uri设置为https://login.uber.com/oauth/v2/authorize?client_id=client_id&response_type=code,其中" client_id"在该链接中设置为我的客户端ID。我确保重定向uri与我在应用开发者帐户页面中的内容相匹配。

此外,我已经将详细信息硬编码到config.js文件中,因为我已经看到有人在stackoverflow上提到存储环境变量可能是我收到的错误的问题。

请帮忙...... 谢谢!

2 个答案:

答案 0 :(得分:0)

当您使用uber注册应用时,您必须定义一个回调网址。即使它是您的开发机器(即localhost:1455)当您将请求发送到Auth服务器时,您提供了client_id,response_type和callback_url。

当用户成功进行身份验证时,Uber会将代码(因此为response_type = code)作为URL参数发回给您的回调URL。此代码不是令牌。然后使用此代码使用client_id,client_secret和代码获取令牌。

我建议您阅读oAuth如何更好地理解。

答案 1 :(得分:0)

我创建了Take-Me-Home-Now应用程序。假设您已经在项目根文件夹中安装了所有依赖项(npm install),请考虑以下事项:

  • 您应该停用广告拦截器以确保不是问题
  • 您必须在Uber Developer Dashboard中配置您的应用:
    • 制作新应用
    • 转到授权选项卡并设置以下配置:
    • 重定向网址:http://localhost:1455/api/callback
    • origin url:http://localhost:1455/
    • 一般范围:启用所有范围(特权范围除外)
    • 转到设置选项卡并复制所需的凭据(客户端ID,服务器令牌和客户端密钥)。您将需要它们来启动NodeJS服务器,如下所示:client_id=[1] client_secret=[2] server_token=[3] redirect_uri=[4] mashape_key=[5] node app.js
  • 要使用性别意识功能,您需要获得Mashape (Face++)帐户。您可能已经意识到,上面的启动命令也需要此密钥。