Rails Basic 인증 가져오기
Rails에서의 인증 유형
Rails 개발 과정에는 3가지 인증 유형이 있습니다.
여기. 홈페이지에도 3가지 유형이 소개됐다.이 세 개를 처리할 수 있다면 되잖아.
기본 인증
이번에 가장 간단한 Basic 인증에 대해 절차를 정리하고 싶습니다.
원래 Basic 인증이란 무엇인가.
Basic 인증은 서버와 통신할 때 사용자 이름과 비밀번호를 아는 사람이 아니면 그 사이트를 방문할 수 없는 기능을 말한다.
이런 느낌의 물건이야.
전제 조건
클라우드 사용 AWS
application_controller에 쓰는 방법
모든 컨트롤러로 Basic 인증을 하고 싶으므로 lication 적용controller.rb에 코드 쓰기!
Rails에는 Basic 인증 방법이 있습니다.
바로authenticate_or_request_with_http_basic
!
app/controllers/application_controller.rbclass ApplicationController < ActionController::Base
before_action :basic_auth
protect_from_forgery with: :exception
private
def basic_auth
authenticate_or_request_with_http_basic do |username, password|
username == ENV["BASIC_AUTH_USER"] && password == ENV["BASIC_AUTH_PASSWORD"]
end
end
end
authenticate_or_request_with_http_basic
Basic 인증을 Rails로 간단히 수행하는 방법username == ENV["BASIC_AUTH_USER"]&& password == ENV["BASIC_AUTH_PASSWORD"]
에서 환경 변수를 사용합니다.
username="keita"또는 코드에 직접 쓰면Giithub에 오류가 발생하여 업로드할 때 불법으로 이용됩니다!조심하세요!
종착역~.bash_프로필에 환경 변수를 쓰다
이번에는 공식 환경에서만 Basic 인증을 실시합니다.
본지$ vim ~/.bash_profile
<!--「i」を押してインサートモードにいく-->
export BASIC_AUTH_USER='keita'
export BASIC_AUTH_PASSWORD='0322'
<!-- 書き終えたらescキーを押して、「:wq」を押して保存して終了-->
$ source ~/.bash_profile
<!--最後に.bash_profileを読み込んで環境変数を反映させる-->
공식 환경에서만 Basic 인증 config/deploy/production.rb
에 보충한다.
config/deploy.rb# server "db.example.com", user: "deploy", roles: %w{db}
server "(御自身のEC2のIPアドレス)", user: "ec2-user", roles: %w{app db web}
set :rails_env, "production"
set :unicorn_rack_env, "production"
# role-based syntax
# ==================
이렇게 유니콘은 현재의 환경을 정식 환경으로 인식했다.
더욱controller의 기술 변경
app/controllers/application_controller.rbclass ApplicationController < ActionController::Base
before_action :basic_auth, if: :production?
protect_from_forgery with: :exception
private
def production?
Rails.env.production?
end
def basic_auth
authenticate_or_request_with_http_basic do |username, password|
username == ENV["BASIC_AUTH_USER"] && password == ENV["BASIC_AUTH_PASSWORD"]
end
end
end
추가before_action :basic_auth, if: :production?
def production?
Rails.env.production?
end
두 개밖에 없어요.production?
방법으로 정의Rails.env.production?
했기 때문에 정식 환경인지 현지 환경인지 알 수 있다.
마지막으로 디버깅 확인 동작을 진행합니다. $ bundle exec cap production deploy
"응, 잘 안되긴 하지만..."할 때 해봐야지
class ApplicationController < ActionController::Base
before_action :basic_auth
protect_from_forgery with: :exception
private
def basic_auth
authenticate_or_request_with_http_basic do |username, password|
username == ENV["BASIC_AUTH_USER"] && password == ENV["BASIC_AUTH_PASSWORD"]
end
end
end
이번에는 공식 환경에서만 Basic 인증을 실시합니다.
본지
$ vim ~/.bash_profile
<!--「i」を押してインサートモードにいく-->
export BASIC_AUTH_USER='keita'
export BASIC_AUTH_PASSWORD='0322'
<!-- 書き終えたらescキーを押して、「:wq」を押して保存して終了-->
$ source ~/.bash_profile
<!--最後に.bash_profileを読み込んで環境変数を反映させる-->
공식 환경에서만 Basic 인증 config/deploy/production.rb
에 보충한다.
config/deploy.rb# server "db.example.com", user: "deploy", roles: %w{db}
server "(御自身のEC2のIPアドレス)", user: "ec2-user", roles: %w{app db web}
set :rails_env, "production"
set :unicorn_rack_env, "production"
# role-based syntax
# ==================
이렇게 유니콘은 현재의 환경을 정식 환경으로 인식했다.
더욱controller의 기술 변경
app/controllers/application_controller.rbclass ApplicationController < ActionController::Base
before_action :basic_auth, if: :production?
protect_from_forgery with: :exception
private
def production?
Rails.env.production?
end
def basic_auth
authenticate_or_request_with_http_basic do |username, password|
username == ENV["BASIC_AUTH_USER"] && password == ENV["BASIC_AUTH_PASSWORD"]
end
end
end
추가before_action :basic_auth, if: :production?
def production?
Rails.env.production?
end
두 개밖에 없어요.production?
방법으로 정의Rails.env.production?
했기 때문에 정식 환경인지 현지 환경인지 알 수 있다.
마지막으로 디버깅 확인 동작을 진행합니다. $ bundle exec cap production deploy
"응, 잘 안되긴 하지만..."할 때 해봐야지
# server "db.example.com", user: "deploy", roles: %w{db}
server "(御自身のEC2のIPアドレス)", user: "ec2-user", roles: %w{app db web}
set :rails_env, "production"
set :unicorn_rack_env, "production"
# role-based syntax
# ==================
app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
before_action :basic_auth, if: :production?
protect_from_forgery with: :exception
private
def production?
Rails.env.production?
end
def basic_auth
authenticate_or_request_with_http_basic do |username, password|
username == ENV["BASIC_AUTH_USER"] && password == ENV["BASIC_AUTH_PASSWORD"]
end
end
end
추가before_action :basic_auth, if: :production?
def production?
Rails.env.production?
end
두 개밖에 없어요.production?
방법으로 정의Rails.env.production?
했기 때문에 정식 환경인지 현지 환경인지 알 수 있다.마지막으로 디버깅 확인 동작을 진행합니다. $ bundle exec cap production deploy
"응, 잘 안되긴 하지만..."할 때 해봐야지
$ bundle exec cap production deploy
유니콜 킬을.
그리고 자동 디버깅 명령을 다시 실행합니다
이렇게 하면 순조롭게 진행될 수 있을 것이다.나중에 와이어를 다시 확인하십시오.
수고하셨습니다!
Reference
이 문제에 관하여(Rails Basic 인증 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/keitah/items/d1c06f4744cd1dbe92af텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)