OAuth2资源所有者密码凭证流仅需要以下信息进行身份验证:
grant_type: password
username: test@test.de
password: test
还是需要client_id
和client_secret
吗?我问这个问题是因为我想要在Ember-Simple-Auth和Doorkeeper中一起使用。两者都实现了OAuth2流程,但Ember-Simple-Auth没有使用client_id
和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进行了一次较大的重构后,编辑2中显示的解决方案不再适用。但是Doorkeeper也有所更改,现在client_id
和client_secret
是可选的。