Basic認証導入時、Heroku上でログインができない。
背景
Basic認証を導入して、必要最低限のセキュリティを設けたい。
過去に2度Basic認証の練習として導入したことがあり、その時はスムーズにできたため、今回も導入したいと考えた。
しかし、実際に導入してみると、ローカル環境では正常に動作しログインできるものの、本番環境では正しいユーザー名とパスワードでも弾かれてしまった。
行ったこと
まず、現状を確認するため、もう一度git push heroku masterでどう表示されるかを確認した。
% git push heroku master
Everything up-to-date
全て最新の状態であることから環境変数を設定する前に、github上でコミットしてしまったり、git push heroku masterなどのコマンドを実行したと仮説を立てた。空のコミットをしてから、再度git push heroku masterをする必要があると考え、実行した。
% git commit --allow-empty -m "コミット名"
% git push heroku master
しかし、ログインできませんでした。
原因
application_controller.rbに記述している、private内の記述と、heroku上に設けた環境変数の名前が一致していなかった。
def basic_auth
authenticate_or_request_with_http_basic do |username, password|
username == ENV["BASIC_AUTH_USER"] && password == ENV["BASIC_AUTH_PASSWORD"]
end
end
% heroku config
=== アプリ名 Config Vars
BASIC_AUTH_PASSWORD: *****
BASIC_AUTH_USERNAME: *****
対処法
双方の環境変数が紐付くように、同じ名前に変えてあげれば良い。
今回の場合はUSERNAMEかUSERに統一させてHerokuに上げれば、正常にログインできました。
Author And Source
この問題について(Basic認証導入時、Heroku上でログインができない。), 我々は、より多くの情報をここで見つけました https://qiita.com/NedzumiNeko/items/daeda0f00c9c537bd5ce著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .