Rails를 통해 Basic 인증 + 전체 버전 가져오기
원래 Basic 인증이 뭐예요?
Basic 인증은 서버와 통신할 때 사용자 이름과 비밀번호를 아는 사람이 아니면 그 사이트를 방문할 수 없는 기능을 말한다.
사진은 이런 느낌이에요.본 사람이 있을 것 같아서요.그럼 실시를 시작하겠습니다.
전제 조건
application_controller에 쓰는 방법
모든 컨트롤러로 Basic 인증을 하고 싶으므로 lication 적용controller.rb에 코드 쓰기!
Rails에는 Basic 인증 방법이 있습니다.
그게 auuthenticate예요.or_request_with_http_basic
바로!
app/controllers/application_controller.rb
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
authenticate_or_request_with_http_Basic은 Rails로 Basic 인증을 간단하게 구현하는 방법입니다!
username == ENV["BASIC_AUTH_USER"]
&&
password == ENV["BASIC_AUTH_PASSWORD"]
환경 변수입니다.username = "kenji"또는 코드에 직접 쓰면 Giithub에서 오류가 발생하여 업로드할 때 불법으로 이용됩니다!조심하세요!
종착역에 있습니다.bash_프로필에 환경 변수를 쓰다
가령 이번에는 본격적인 환경에서 진행해야 한다면!
ssh 액세스 서버에 연결하세요!$ vim ~/.bash_profile
###「i」を押してインサートモードにいく
export BASIC_AUTH_USER='kenji'
export BASIC_AUTH_PASSWORD='1234'
###書き終えたらescキーを押して、「:wq」を押して保存して終了
$ source ~/.bash_profile
###最後に.bash_profileを読み込んで環境変数を反映させる
공식 환경에서만 Basic 인증
config/deploy의production입니다.rb에 계속 추기하다.
config/deploy/production.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.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 unicorn:stop
$ bundle exec cap production deploy unicorn:start
"음, 잘 안되지만..."상황이 발생하면 AWS의 콘솔에서 EC2를 다시 시작하세요!그리고nginx, MySQL, Uniccorn을 수동으로 다시 시작하십시오.그럼 잘 될 거야.
수고하셨습니다!
Basic 인증을 잘 하셨을 거예요!
Reference
이 문제에 관하여(Rails를 통해 Basic 인증 + 전체 버전 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mitsumitsu1128/items/7bc73547ee7b6193f35d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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
가령 이번에는 본격적인 환경에서 진행해야 한다면!
ssh 액세스 서버에 연결하세요!
$ vim ~/.bash_profile
###「i」を押してインサートモードにいく
export BASIC_AUTH_USER='kenji'
export BASIC_AUTH_PASSWORD='1234'
###書き終えたらescキーを押して、「:wq」を押して保存して終了
$ source ~/.bash_profile
###最後に.bash_profileを読み込んで環境変数を反映させる
공식 환경에서만 Basic 인증
config/deploy의production입니다.rb에 계속 추기하다.
config/deploy/production.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.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 unicorn:stop
$ bundle exec cap production deploy unicorn:start
"음, 잘 안되지만..."상황이 발생하면 AWS의 콘솔에서 EC2를 다시 시작하세요!그리고nginx, MySQL, Uniccorn을 수동으로 다시 시작하십시오.그럼 잘 될 거야.
수고하셨습니다!
Basic 인증을 잘 하셨을 거예요!
Reference
이 문제에 관하여(Rails를 통해 Basic 인증 + 전체 버전 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mitsumitsu1128/items/7bc73547ee7b6193f35d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# 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 unicorn:stop
$ bundle exec cap production deploy unicorn:start
"음, 잘 안되지만..."상황이 발생하면 AWS의 콘솔에서 EC2를 다시 시작하세요!그리고nginx, MySQL, Uniccorn을 수동으로 다시 시작하십시오.그럼 잘 될 거야.
수고하셨습니다!
Basic 인증을 잘 하셨을 거예요!
Reference
이 문제에 관하여(Rails를 통해 Basic 인증 + 전체 버전 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mitsumitsu1128/items/7bc73547ee7b6193f35d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ bundle exec cap production deploy unicorn:stop
$ bundle exec cap production deploy unicorn:start
Basic 인증을 잘 하셨을 거예요!
Reference
이 문제에 관하여(Rails를 통해 Basic 인증 + 전체 버전 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mitsumitsu1128/items/7bc73547ee7b6193f35d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)