【发布时间】:2013-05-15 06:43:26
【问题描述】:
我在理解如何使用 oAuth2rize 和 passport.js 实现资源所有者密码流程时遇到了一些问题,特别是传输 client_id 和 client_secret 以便我可以对客户端进行一些检查以确保任何事情都进入这个目的使用特定“密码”授权类型的点 (/token) 是专门的官方应用程序,没有其他基于 id 和 secret 的应用程序。
在构建解决方案时,我可以取回一个令牌,但那是在我尝试对客户端进行任何验证之前。当我尝试访问传递到密码交换策略的客户端变量(发布到端点)时,我收到了基于文档的用户凭据(用户名、密码),但不是我需要在这里实现的。
我不知道如何获得实际的客户端凭据,我可以在密码函数源代码中看到您可以提供其他选项来覆盖对 req['user'] 的默认分配,但这是否意味着我有提供某种代码添加到 req 对象?
我已经设置了一些集成测试,这是我调用端点的方式(使用 SuperTest):
request('http://localhost:43862')
.post('/oauth/token')
.type('form')
.send({ grant_type: 'password' })
.send({ client_id: 'goodClient' })
.send({ client_secret: 'asecret' })
.send({ username: 'good@user.com' })
.send({ password: 'goodpassword' })
.expect(200, done);
由于某种原因,我似乎完全在想这个,但由于某种原因,我完全被难住了......
【问题讨论】:
标签: node.js oauth-2.0 passport.js