OAuth2 资源所有者密码凭证流程是否只需要以下信息进行身份验证:
grant_type: password
username: test@test.de
password: test
还是它也需要client_id
and client_secret
?我问,因为我想将Ember-Simple-Auth与Doorkeeper一起使用。两者都实现了流程,但 Ember-Simple-Auth 没有使用client_id
and client_secret
,而 Doorkeeper 需要该信息才能工作。所以我认为其中之一没有正确实现 OAuth2 规范。
编辑1:
我之前也看过规范,但我想确定,在我为 Doorkeeper gem 填写错误报告之前,规范中也有这一部分:
如果客户端类型是机密的或客户端已获得客户端凭据(或分配了其他身份验证要求),则客户端必须向授权服务器进行身份验证,如第 3.2.1 节所述。
编辑 2
在查看 ember-simple-auth 的测试时,我看到它还测试请求参数client_id
和client_secret
. 因此,我更深入地研究了代码,并了解了如何设置 id 和 secret。
App.LoginController = Ember.Controller.extend(Ember.SimpleAuth.LoginControllerMixin, {
client_id: 'id',
client_secret: 'secret'
})
编辑 3
由于在 Ember-SimpleAuth 中进行了重大重构,Edit 2 中显示的解决方案不再起作用。但是门卫也发生了变化,现在client_id
是client_secret
可选的。