OAuth2资源所有者密码凭证流仅需要以下信息进行身份验证:

 grant_type: password
 username: [email protected]
 password: test

还是还需要client_idclient_secret?我问,因为我想同时使用Ember-Simple-AuthDoorkeeper。两者都实现了流程,但是Ember-Simple-Auth并未使用client_idclient_secret,而Doorkeeper需要该信息才能正常工作。因此,我认为其中之一无法正确实现OAuth2规范。

编辑1:
  • Doorkeeper features
  • Ember-Simple-Auth features

  • 我之前也查看过这些规范,但是我想确定,在填写Doorkeeper gem的错误报告之前,但规范中也包含以下内容:



    编辑2

    在查看ember-simple-auth的测试时,我看到它还测试了请求参数client_idclient_secret。因此,我对代码进行了更深入的研究,发现了如何设置ID和密码。
    App.LoginController = Ember.Controller.extend(Ember.SimpleAuth.LoginControllerMixin, {
        client_id: 'id',
        client_secret: 'secret'
    })
    

    编辑3

    由于Ember-SimpleAuth中的大量重构,Edit 2中显示的解决方案不再起作用。但是Doorkeeper也发生了变化,现在client_idclient_secret是可选的。

    最佳答案

    您确定同时使用资源所有者密码凭证流程实现oAuth吗?

    看一看spec,发现在“资源所有者密码凭据”流中,不需要client_id和client_secret。

    Authorization Code Grant中,规范要求客户端传递* client_id和client_secret *,但在4.3.1中,它表示auth-server需要对机密客户端进行客户端认证。该规范使其适用于客户端不是“机密”客户的情况。如果在上述问题(@Doorkeeper)中,客户端不是“机密”用户,则可能不需要client_id ...

    10-06 07:37