前提・実現したいこと
rails5でベーシック認証を実装したいです。
ソースに直接usernameとpasswordを記入すれば実装できたんですが、
環境変数を~/.bash_profileに設定するとなぜかログインできません。
printenv | less で環境変数は設定されていることは確認しました。
該当のソースコード
ruby
1#application_controller 2class ApplicationController < ActionController::Base 3 before_action :basic_auth 4 5 private 6 7 def basic_auth 8 authenticate_or_request_with_http_basic do |username, password| 9 username == ENV["BASIC_AUTH_USER"] && password == ENV["BASIC_AUTH_PASSWORD"] 10 end 11 end 12 13end
試したこと
vim ~/.bash_profile #環境変数を設定
source ~/.bash_profile #再読み込みして環境変数を有効にする
補足情報(FW/ツールのバージョンなど)
rails 5.2.2.1
ruby 2.5.1
railsを再起動しても環境変数を読み込みませんか?
再起動も試しましたが、ダメでした
railsはどのユーザの権限で起動していますでしょうか。また、起動時のコマンドはどのようにしましたか?
ユーザー権限の設定などはしておりません。
起動時のコマンドはrails sです。
bash_profileを記述したそのユーザーでログインして、rails s を実行していますか?
はい
念のため、下記のファイルを作って「ruby ファイル名」で実行してみてください。
p ENV["BASIC_AUTH_USER"]
p ENV["BASIC_AUTH_PASSWORD"]
$ ruby ruby.rb
"kenji"
"1234"
と表示されました
改行文字を疑ったのですが、大丈夫そうですね。
一体何が原因なのでしょうか。。。
回答1件
あなたの回答
tips
プレビュー