我正在关注这个railscast,并且针对我的具体情况,我遇到了来自omniauth的回调的法拉第超时错误.
目前我正在使用rails应用程序作为API和骨干作为javascript前端(在同一个应用程序中)
我决定使用OAuth锁定API并为Omniauth提供自定义策略以作为客户端访问API以及门卫来处理授权逻辑
module OmniAuth
module Strategies
class Twiddle < OmniAuth::Strategies::OAuth2
option :name, :twiddle
option :client_options, {
site: "http://localhost:3001",
authorize_path: "/oauth/authorize"
}
uid do
raw_info["id"]
end
info do
{
firstName: raw_info["firstName"],
lastName: raw_info["lastName"],
email: raw_info["email"]
}
end
def raw_info
@raw_info ||= access_token.get('/api/v1/user').parsed
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
我包括这样的自定义策略:
require File.expand_path('lib/omniauth/strategies/twiddle', Rails.root)
Rails.application.config.middleware.use OmniAuth::Builder do
provider :twiddle, id, secret # Omitting the actual ones for obvious reasons
end
Run Code Online (Sandbox Code Playgroud)
我目前正在使用这些宝石
# OAuth
gem 'oauth2'
gem 'omniauth'
gem 'omniauth-oauth2'
gem 'omniauth-facebook'
gem …Run Code Online (Sandbox Code Playgroud) 我正在解密流量的 HTTPS Squid 代理后面从 Docker Hub 拉取 Docker 容器。
由于我没有信任我的 CA 根的代理 SSL 证书,因此在拉取时出现以下 SSL 错误:https: //index.docker.io/v1/repositories/.../images : x509:未知权威机构签署的证书
我知道我可以将 --insecure-registry 附加到私有存储库以忽略此问题,但由于某种原因我无法忽略 Docker 上托管的注册表。我对本地 DNS 服务器进行了一些分析,以查看 Docker 正在解析哪些主机名,并尝试了以下操作:
--insecure-registry docker.io --insecure-registryregistry-origin.docker.io --insecure-registryindex.docker.io --insecure-registry auth.docker.io --insecure-registryregistry-1.docker .io
这些都没有成功地让我从 Docker Hub 中拉取。有没有办法让它正常工作?
我有一个重复的比较,我必须检查三个变量是否等于某个变量.为简单起见,我将创建一个场景来说明我遇到的问题.
if time == -1 and day_of_week == -1 and month == -1
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种简洁,逻辑等效的方式来实现相同的代码行而不重复.
现在我正在使用一种迂回的方式,如下所示:
all_equal = true
[time_now, day_of_week, month].each { |value| all_equal = false if value != -1 }
if all_equal ....
Run Code Online (Sandbox Code Playgroud)
嗯,显然它已经超过了顶部(并且明显效率不高)但我发现重复的缺乏更令人愉悦.
你会建议一个更好的方法吗?
谢谢!