Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用客户端应用程序中的Doorkeeper进行身份验证,而不传输机密_Javascript_Ruby On Rails_Oauth_Google Oauth_Doorkeeper - Fatal编程技术网

Javascript 使用客户端应用程序中的Doorkeeper进行身份验证,而不传输机密

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,但我不知道如何与门卫一起做到

我正在尝试在RubyonRails API应用程序中使用Doorkeeper进行身份验证。从客户端AngularJS应用程序中,我想获得一个访问令牌。目前,这涉及到对/oauth/authorize的GET请求,它给了我一个代码,然后我将该代码连同客户机id和一个密码一起发布到/oauth/token。我不想从我的客户端应用程序发送客户端ID和密码,因为它们以明文形式存储在JavaScript文件中。我想知道
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中配置它,因为有时它可能很危险