OAuth2资源所有者密码凭证流仅需要以下信息进行身份验证:
grant_type: password
username: [email protected]
password: test
还是还需要
client_id
和client_secret
?我问,因为我想同时使用Ember-Simple-Auth和Doorkeeper。两者都实现了流程,但是Ember-Simple-Auth并未使用client_id
和client_secret
,而Doorkeeper需要该信息才能正常工作。因此,我认为其中之一无法正确实现OAuth2规范。编辑1:
我之前也查看过这些规范,但是我想确定,在填写Doorkeeper gem的错误报告之前,但规范中也包含以下内容:
编辑2
在查看ember-simple-auth的测试时,我看到它还测试了请求参数
client_id
和client_secret
。因此,我对代码进行了更深入的研究,发现了如何设置ID和密码。App.LoginController = Ember.Controller.extend(Ember.SimpleAuth.LoginControllerMixin, {
client_id: 'id',
client_secret: 'secret'
})
编辑3
由于Ember-SimpleAuth中的大量重构,Edit 2中显示的解决方案不再起作用。但是Doorkeeper也发生了变化,现在
client_id
和client_secret
是可选的。 最佳答案
您确定同时使用资源所有者密码凭证流程实现oAuth吗?
看一看spec,发现在“资源所有者密码凭据”流中,不需要client_id和client_secret。
在Authorization Code Grant中,规范要求客户端传递* client_id和client_secret *,但在4.3.1中,它表示auth-server需要对机密客户端进行客户端认证。该规范使其适用于客户端不是“机密”客户的情况。如果在上述问题(@Doorkeeper)中,客户端不是“机密”用户,则可能不需要client_id ...