ArgumentError in Users::OmniauthCallbacksController#google_oauth2
header field value cannot include CR/LF真的不知道这个错误是从哪里来的。
我使用的是ruby 2.5、Rails 5和google client 0.8.2
有什么想法,如何解决,或什么信息,我可以提供,使这个问题更有信息?
更新:当我试图使用Google授权时,我的日志显示了这一点
Google::APIClient::Request Sending API request get https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest {"User-Agent"=>"hello U/1.0.0 google-api-ruby-client/0.8.2 Mac OS X/10.13.4\n (gzip)", "Accept-Encoding"=>"gzip", "Content-Type"=>""}从我的研究来看,CRLF是"\r\n“角色,对吗?
因此,"User-Agent"=>"hello U/1.0.0 google-api-ruby-client/0.8.2 Mac OS X/10.13.4\n可能是问题所在。
因此,我的问题是-如何在请求中访问用户代理来解决Rails 5中的问题?
发布于 2019-10-10 12:24:30
当使用Google::APIClient时,生成的用户代理可能包含一个CRLF.它可以在构造函数中被重写。例子:
Google::APIClient.new(application_name: 'Foo', application_version: '1.0', user_agent: 'Foo/1.0 google-api-ruby-client/0.8.6 Linux/4.15.0-65-generic (gzip)')发布于 2020-07-22 14:54:04
您可以修改user_agent字符串以删除CR/LF。我使用的是Rails 4.1.8和google-api-client版本
@api_client = Google::APIClient.new(:application_name=>"Chronos", :application_version=>0)
# work around a bug that puts a CR/LF in the user agent string
@api_client.user_agent = @api_client.user_agent.gsub("\n", "")发布于 2019-10-14 19:48:17
将gem google-api-client更新为0.20.0版本。它解决了问题,但需要对应用程序进行其他更改。
https://stackoverflow.com/questions/51219917
复制相似问题