门卫申请不保存
Doorkeeper Application not saving
我让 Doorkeeper 在本地工作,但一旦部署到生产环境,我就会遇到一个奇怪的问题。我无法创建新的应用程序,请看下面:
$> app = Doorkeeper::Application.new :name => 'test', :redirect_uri => 'http://test.com'
=> #<Doorkeeper::Application id: nil, name: "test", uid: nil, secret: nil, redirect_uri: "http://test.com", scopes: "", created_at: nil, updated_at: nil>
$> app.save
(0.8ms) BEGIN
(0.8ms) BEGIN
Doorkeeper::Application Exists (0.7ms) SELECT 1 AS one FROM `oauth_applications` WHERE `oauth_applications`.`uid` = BINARY '56bf468e5a1d116e3daef75ecc49b6b6ba313a9a79815b5b4683d56851880c49' LIMIT 1
Doorkeeper::Application Exists (0.7ms) SELECT 1 AS one FROM `oauth_applications` WHERE `oauth_applications`.`uid` = BINARY '56bf468e5a1d116e3daef75ecc49b6b6ba313a9a79815b5b4683d56851880c49' LIMIT 1
(0.4ms) ROLLBACK
(0.4ms) ROLLBACK
=> false
oauth_applications table 是 100% 空的。
我在服务器上运行这个(在本地它按预期工作),如果您需要更多信息,请告诉我。
编辑:
我也试过:
$>app.save!
并得到以下错误:
ActiveRecord::RecordInvalid: Validation failed: Redirect URI must be an HTTPS/SSL URI.
我有一个针对非 https uri 的解决方案。在 doorkeeper.rb 配置文件中,您可以选择将 force_ssl_in_redirect_uri
设置为 false
。
# config/initalizers/doorkeeper.rb
force_ssl_in_redirect_uri false
原来这不是问题,而是设计使然:)
来自错误的以下部分:
Redirect URI must be an HTTPS/SSL URI
您似乎正在为 uri 使用不安全的(http
,而不是 https
)端点。对于某些平台(如 Heroku),自动启用 HTTPS 支持,因此在 uri 中放置 https://
就足够了。
对于 ElasticBeanstalk,这应该不是一个非常繁琐的过程。请参阅 their docs 以开始使用。您需要从域名提供商处购买 SSL 证书,然后在 ElasticBeanstalk Web 配置中找到上传和使用证书的选项(我认为该选项可能位于负载均衡器部分)。
我让 Doorkeeper 在本地工作,但一旦部署到生产环境,我就会遇到一个奇怪的问题。我无法创建新的应用程序,请看下面:
$> app = Doorkeeper::Application.new :name => 'test', :redirect_uri => 'http://test.com'
=> #<Doorkeeper::Application id: nil, name: "test", uid: nil, secret: nil, redirect_uri: "http://test.com", scopes: "", created_at: nil, updated_at: nil>
$> app.save
(0.8ms) BEGIN
(0.8ms) BEGIN
Doorkeeper::Application Exists (0.7ms) SELECT 1 AS one FROM `oauth_applications` WHERE `oauth_applications`.`uid` = BINARY '56bf468e5a1d116e3daef75ecc49b6b6ba313a9a79815b5b4683d56851880c49' LIMIT 1
Doorkeeper::Application Exists (0.7ms) SELECT 1 AS one FROM `oauth_applications` WHERE `oauth_applications`.`uid` = BINARY '56bf468e5a1d116e3daef75ecc49b6b6ba313a9a79815b5b4683d56851880c49' LIMIT 1
(0.4ms) ROLLBACK
(0.4ms) ROLLBACK
=> false
oauth_applications table 是 100% 空的。
我在服务器上运行这个(在本地它按预期工作),如果您需要更多信息,请告诉我。
编辑:
我也试过:
$>app.save!
并得到以下错误:
ActiveRecord::RecordInvalid: Validation failed: Redirect URI must be an HTTPS/SSL URI.
我有一个针对非 https uri 的解决方案。在 doorkeeper.rb 配置文件中,您可以选择将 force_ssl_in_redirect_uri
设置为 false
。
# config/initalizers/doorkeeper.rb
force_ssl_in_redirect_uri false
原来这不是问题,而是设计使然:)
来自错误的以下部分:
Redirect URI must be an HTTPS/SSL URI
您似乎正在为 uri 使用不安全的(http
,而不是 https
)端点。对于某些平台(如 Heroku),自动启用 HTTPS 支持,因此在 uri 中放置 https://
就足够了。
对于 ElasticBeanstalk,这应该不是一个非常繁琐的过程。请参阅 their docs 以开始使用。您需要从域名提供商处购买 SSL 证书,然后在 ElasticBeanstalk Web 配置中找到上传和使用证书的选项(我认为该选项可能位于负载均衡器部分)。