问题标签 [grant-oauth]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 与谷歌进行 OAuth2 身份验证的授权问题
我正在使用Grant与谷歌进行 OAuth2 身份验证。我在 config.json 中提供了所有参数:
但它仍然拒绝发送所有参数。我收到“client_id”未发送错误。
我修改了库以打印出 URL,确实是这样:
通过某种排列,我确实设法使第一步工作了一次,但是由于找不到client_secret而失败了。
有什么我做错了吗?该库似乎没有错误。
javascript - Express.js 连接到 Twitter
我正在尝试在我的 Windows 7 机器上使用 Express.js 和Grant对 Twitter 进行 Oauth 身份验证。当我node app.js
在命令行中运行时,我得到以下信息:
问题是为什么 MADE IT HERE 也不会在控制台中输出。另外,我应该在 app.js 中我目前有“非常秘密”的地方放什么秘密?这需要成为我的消费者秘密还是任何字符串?
我正在使用 Xampp,当我想在我的浏览器 (Chrome) 中运行时,我会直接访问:http ://dummy.com:3000 /,然后我得到“此网页不可用”。如果我改为直接访问http://localhost/xampp/phptest/lions/idk/run.html,那么我会得到一个空白网页。我应该使用哪个?
这是我所有的文件:
应用程序.js
配置文件
包.json
运行.html
node.js - 从 Pocket API (oAuth) 检索数据
我需要从我的 Pocket 帐户中检索我保存的阅读列表,而且我似乎需要通过他们的 oAuth 获取访问令牌才能发出请求。
我有访问令牌的消费者密钥,根据 Pocket API 文档,请求将类似于这样。
我的问题是...不是 oAuth 用于 3rd 方应用程序以通过 Google、Facebook 帐户启用身份验证吗?我看不出这个想法与我的网站有什么关系,我的网站只需要从 Pocket 访问我自己的数据即可在我的网站上共享。
我知道我需要以某种方式进行身份验证,以便我可以访问我的数据,但是 oAuth 是我需要通过的过程来获得我需要的东西吗?
javascript - 无法使用 Oauth2/BaseCamp API 获取响应数据
我是一个使用 javascript API 的“高级初学者”,所以我的需求可能是二年级的,但是在整晚把我的头撞在墙上之后,感谢您提供的任何基本指导。我正在尝试使用 Oauth2 对应用程序进行身份验证以访问我的 BaseCamp 站点。
我正在使用 Grant Express 并已成功注册我的应用程序,因此我收到了 client_ID、client_secret 和重定向 uri。对于重定向 uri,我添加了一个名为“auth”的文件夹,但其中唯一的内容是一个空白的 index.html 文件。所以重定向网址是http://example.com/auth。
在我的本地机器上,我创建了一个名为 oauth 的目录并在其中运行: npm install express npm install grant-express
我创建了一个文件 app.js,如下所示:
package.json 文件如下所示:
我去终端并输入node app.js
并得到响应:Express server listening on port 3000
。没事吧?
当我转到浏览器并输入http://localhost:3000/connect/basecamp时,url 会重定向到:https://launchpad.37signals.com/authorization/new?client_id=client_id_from_basecamp&response_type=code&redirect_uri=http%3A%2F%2F127.0.0.1%3A3000%2Fconnect%2Fbasecamp%2Fcallback&type=web_server
但页面包含此错误: :error: Provided redirect_uri is not approved
如果我到达:http://localhost:3000/connect/basecamp/callback
我会看到这个错误(也在服务器的控制台中){ error: { error: 'Grant: OAuth2 missing code parameter' } }
在Basecamp API 文档中它说:使用您的 client_id、client_secret 和 redirect_uri 配置您的 OAuth 2 库。告诉它使用https://launchpad.37signals.com/authorization/new请求授权并使用https://launchpad.37signals.com/authorization/token获取访问令牌。什么是“它”以及我将如何告诉它使用这些网址?我是否将这些 url 作为对象添加到我的 app.js 文件中?还是我进入另一个文件?我需要在http://example.com/auth中添加一些东西吗?
不知道从这里去哪里......非常感谢您的帮助。
node.js - Twitter 登录不会重定向回我的应用
我正在使用https://github.com/simov/grant添加登录 Twitter 功能,但由于某种原因,Twitter 在授权我后无法重定向回我的应用程序。
这是我为重新编辑提供的网址:
我的 /etc/hosts 文件中有 dummy.com 别名,指向 127.0.0.1 (localhost)
如果您查看浏览器地址栏,您会注意到我的 url 已损坏(缺少协议部分),并且看起来 twitter 正在尝试在 twitter 网站上查找具有此类 url 的页面,而不是实际重定向到我的 url。
我的授权配置:
{
"twitter": {
"key": "...",
"secret": "....",
"callback": "/handle_twitter_callback"
}
}
express - 在同一浏览器上同时访问两个应用程序模块且用户尚未登录时,授予提供者 OAuth 状态不匹配
我一直在尝试实现单点登录(SSO)。我有不同的前端应用程序模块,它们在不同的域上运行,它们都使用单个 API 服务器。
- SSO 服务器https://sso.app.com
- API 服务器https://api.app.com
- 前端模块 1 https://module-1.app.com
- 前端模块 2 https://module-2.app.com
认证流程
身份验证流程是前端模块检查本地存储中的令牌。如果找不到令牌,它将用户重定向到 API 服务器端点,比如说https://api.app.com/oauth/connect. API 服务器具有 SSO 服务器的 clientId 和 Secrets。API 服务器在 cookie 中设置前端模块的 url(以便我可以将用户重定向回启动器前端模块),然后将请求重定向到 SSO 服务器,在该服务器上向用户显示登录屏幕。用户在那里输入凭据,SSO 服务器验证凭据,创建会话。验证凭证后,SSO 服务器使用用户配置文件和 access_token 调用 API 服务器端点。API 服务器在会话中获取配置文件并查询并签署自己的令牌,然后通过查询参数将其发送到前端模块。在前端(React APP)上有一条专门用于此的路线。在该前端路由中,我从 queryParams 中提取令牌并设置在本地存储中。用户在应用程序中。同样,当用户加载 FrontendModule-2 时,会发生相同的流程,但这次是因为在 FrontendModule-1 流程运行时 SSO 服务器正在创建会话。它从不要求登录凭据并将用户登录到系统。
失败场景:
场景是,假设有用户 JHON 尚未登录并且没有会话。Jhon 在浏览器中点击了“前端模块 1”URL。前端模块检查 localStorage 的令牌,它没有找到它,然后前端模块将用户重定向到 API 服务器路由。API 服务器具有将请求重定向到 SSO 服务器的 clientSecret 和 clientId。那里的用户将看到登录屏幕。
Jhon 看到登录屏幕并保持原样。现在 Jhon 在同一浏览器中打开另一个选项卡并输入“前端模块 2”的 URL。与上面相同的流程发生,Jhon 登陆登录屏幕。Jhon 离开该屏幕并返回到第一个选项卡,在该选项卡中加载了 Frontend Module 1 会话屏幕。他输入信用并点击登录按钮。它给了我会话状态已更改的错误。这个错误实际上是有道理的,因为会话是共享的。
期待
我如何在没有错误的情况下实现这一点。我想将用户重定向到发起请求的同一个前端模块。
我正在使用的工具
示例实现(API 服务器)
python - NodeJS Grant - 带有 Django Oauth Toolkit 应用程序的 Oauth
我正在使用两台服务器,一台是 NodeJS 应用程序(FeathersJS 和 Grant 用于身份验证),另一台是 Django 应用程序,使用 django-oauth-toolkit 进行身份验证。
我正在尝试使用 python django 应用程序让 NodeJS 应用程序进行 oauth,所以这是我到目前为止所做的:
- 使用 Django Oauth 工具包注册 Feathers -
- 使用以下选项配置 Feathers/Grant:
但是我遇到了一个问题,即授权工作流没有收到访问令牌,并且被困在这一点上。有没有人尝试过集成两个应用程序并在此过程中取得成功?我将不胜感激任何指针,建议。谢谢!