Javascript 使用客户端应用程序中的Doorkeeper进行身份验证,而不传输机密
我正在尝试在RubyonRails API应用程序中使用Doorkeeper进行身份验证。从客户端AngularJS应用程序中,我想获得一个访问令牌。目前,这涉及到对/oauth/authorize的GET请求,它给了我一个代码,然后我将该代码连同客户机id和一个密码一起发布到/oauth/token。我不想从我的客户端应用程序发送客户端ID和密码,因为它们以明文形式存储在JavaScript文件中。我想知道Javascript 使用客户端应用程序中的Doorkeeper进行身份验证,而不传输机密,javascript,ruby-on-rails,oauth,google-oauth,doorkeeper,Javascript,Ruby On Rails,Oauth,Google Oauth,Doorkeeper,我正在尝试在RubyonRails API应用程序中使用Doorkeeper进行身份验证。从客户端AngularJS应用程序中,我想获得一个访问令牌。目前,这涉及到对/oauth/authorize的GET请求,它给了我一个代码,然后我将该代码连同客户机id和一个密码一起发布到/oauth/token。我不想从我的客户端应用程序发送客户端ID和密码,因为它们以明文形式存储在JavaScript文件中。我想知道response\u type是token,而不是code,但我不知道如何与门卫一起做到
response\u type
是token
,而不是code
,但我不知道如何与门卫一起做到这一点。所有示例似乎都涉及将客户机ID和secret发布到/oauth/token
看门人是做这件事的合适人选吗?如何从客户端应用程序执行GoogleOAuth2,在客户端应用程序中不向服务器传递任何机密
Edit:看起来我想要的是隐式授权,这是一个。现在我只需要在我的Rails应用程序中找到如何做到这一点…无需额外的服务器端配置 当我在Rails应用程序中创建一个新的
Doorkeeper::Application
时,Doorkeeper界面为我提供了一个授权链接,其中包含该应用程序的response\u type=code
我将其更改为response\u type=token
,当我对其执行GET请求时,它会立即使用access\u token
而不是code
进行响应。授权URL看起来像http://my-rails-doorkeeper-app/oauth/authorize?client_id=1234&redirect_uri=http://my-angularjs应用程序和响应类型=令牌
更新:
只有当我们还允许对授权流进行隐式授权时,才能应用此方法。
默认情况下,doorkeeper将允许它的四种流(隐式授权、授权授权、密码和客户端凭据)
如果您不想让它发生,您可以在初始化器/doorkeeper.rb中配置它,因为有时它可能很危险