2016-04-05 5 views
3

Dokekeeperはローカルで作業していますが、いったんプロダクションに導入すると奇妙な問題が発生しています。新しいアプリケーションを作成することができません。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テーブルは100%空です。

これはサーバー上で実行されています(ローカルでは正常に動作します)。必要な情報があれば教えてください。

EDIT:

私も試してみました:

$>app.save!  

と、次のエラーを取得:

ActiveRecord::RecordInvalid: Validation failed: Redirect URI must be an HTTPS/SSL URI. 
+0

「リダイレクトURIはHTTPS/SSL URIでなければなりません。」リダイレクトURIに 'https://'を追加してみてください。あなたのプラットフォームに応じてSSH証明書をインストールする必要があるかもしれません(herokuで自動的に実行されます)。 –

+0

それはうまくいった!ありがとう、あなたが答えとしてそれを置くなら、私はそれが正しいとマークします!私は私のホストにAWS Elastic Beanstalkを使用していますが、SSH証明書を取得する方法を見つける必要があるようです。 – gregwinn

答えて

3

エラーの次のコンポーネントから:

Redirect URI must be an HTTPS/SSL URI 

それはあなたがhttps、(httpを非セキュアにない使用しているようです)エンドポイントを指定します。いくつかのプラットフォーム(Herokuなど)では、HTTPSサポートが自動的に有効になるため、uriにhttps://を置くだけで十分です。

ElasticBeanstalkの場合は、非常に面倒な処理ではありません。開始するにはtheir docsを参照してください。ドメイン名プロバイダからSSL証明書を購入し、ElasticBeanstalk Web設定のオプションを見つけて、証明書をアップロードして使用する必要があります(このオプションはロードバランサセクションにあると思います)。

2

を私はNON HTTPSのURIのためのソリューションを持っています。 doorkeeper.rb設定ファイルでは、force_ssl_in_redirect_urifalseに設定するオプションがあります。

# config/initalizers/doorkeeper.rb 

force_ssl_in_redirect_uri false 

、これは問題ではありませんが判明したが、設計により:)

関連する問題