Basic 인증 도입시, Heroku상에서 로그인을 할 수 없다.
배경
Basic 인증을 도입하여 필요 최소한의 보안을 마련하고 싶다.
과거에 두 번 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상에 마련한 환경 변수의 이름이 일치하지 않았다.
app/controllers/application_controller.rb 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에 올리면 정상적으로 로그인할 수 있었습니다.
Reference
이 문제에 관하여(Basic 인증 도입시, Heroku상에서 로그인을 할 수 없다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/NedzumiNeko/items/daeda0f00c9c537bd5ce
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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에 올리면 정상적으로 로그인할 수 있었습니다.
Reference
이 문제에 관하여(Basic 인증 도입시, Heroku상에서 로그인을 할 수 없다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/NedzumiNeko/items/daeda0f00c9c537bd5ce텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)