복붙노트

[RUBY-ON-RAILS] 고안 비밀 키가 설정되지 않았습니다

RUBY-ON-RAILS

고안 비밀 키가 설정되지 않았습니다

나는 관리 백 엔드에 대한 Active 관리자 보석을 사용하여 레일 4 응용 프로그램을 개발하고있다. 차례로 활성 관리자는 사용자 인증을 위해 고안를 사용합니다. 나는 VPS 서버에 카피 스트라 노를 사용하여 응용 프로그램을 배포 할 때 지금, 나는 오류가 아래의 수 :

rake aborted!
Devise.secret_key was not set. Please add the following to your Devise initializer:
config.secret_key = '-- secret key --'

구글 검색이 오류를 위해 많은 일을하지 않습니다. 어떤 제안이 왜 오류를 던지고있다? 내가 이니셜 라이저 / devise.rb 이러한 설정 키를 설정할 수있는 장소를 찾을 수 없기 때문에 나는, 초기화 고안하는 비밀 키를 추가해야합니까?

해결법

  1. ==============================

    1.오늘 아침 번들 업데이 트를 실행과 같은 오류를 받기 시작했다.

    오늘 아침 번들 업데이 트를 실행과 같은 오류를 받기 시작했다.

    I는 설정 / 초기화 / devise.rb에서 선으로 첨가하고, 오류를 수정 하였다.

    이는 그것을 소개하는 커밋 될 것으로 보인다.

  2. ==============================

    2.레일 4.1 고안 3.2.4에 나를 위해 일한 무엇에 설정 / 초기화 / devise.rb입니다 :

    레일 4.1 고안 3.2.4에 나를 위해 일한 무엇에 설정 / 초기화 / devise.rb입니다 :

    config.secret_key = ENV['DEVISE_SECRET_KEY'] if Rails.env.production?
    
  3. ==============================

    3.YourAppName :: Application.config.secret_key_base에 키 설정 위치 기본값이 발견 레일 4 + 응용 프로그램에 대한 고안 3.2.3 현재의 설정 / 초기화 / secret_token.rb

    YourAppName :: Application.config.secret_key_base에 키 설정 위치 기본값이 발견 레일 4 + 응용 프로그램에 대한 고안 3.2.3 현재의 설정 / 초기화 / secret_token.rb

  4. ==============================

    4.이건 내 문제를 해결했다 :

    이건 내 문제를 해결했다 :

    당신의 설정 / 초기화 / devise.rb 파일에 아래의 코드를 추가합니다.

    config.secret_key = '-- secret key --' 
    

    교체 '- 비밀 key--'자신의 키를. 나는 보안 목적에 대한 ENV 변수에 저장하는 것이 좋습니다.

  5. ==============================

    5.변경 로그에 따라 :

    변경 로그에 따라 :

    나는에 설정 / secrets.yml 가서 생산 값을 변경했습니다.

    전에:

    production: 
      secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
    

    후:

    production: 
      secret_key_base: string of charaters
    

    물론, 그는 나중에 설정합니다 환경 변수로 설정해야합니다,하지만 적어도이 실행되었다. 나는 번들 간부 레이크 비밀을 사용하여 내 문자열을 얻었다.

  6. ==============================

    6.가 될 수 있을까, 당신은 레일 g 고안를 실행하지 않았다 : 설치?

    가 될 수 있을까, 당신은 레일 g 고안를 실행하지 않았다 : 설치?

    실행 레일은 이전 명령이이 문제를 유발하지 않고 유증 사용자를 생성합니다.

  7. ==============================

    7.에서 설정 / 초기화 / devise.rb 내가 넣어 :

    에서 설정 / 초기화 / devise.rb 내가 넣어 :

    config.secret_key = ENV["SECRET_KEY_BASE"] if Rails.env.production?
    

    당신이 세우면 때문에 :

    $ heroku config
    

    당신은 모드 생산을위한 secret_key_base를 볼 수 있습니다.

  8. ==============================

    8.나는이 추악한 방법 내 초기화 문제를 해결 :

    나는이 추악한 방법 내 초기화 문제를 해결 :

    config.secret_key = 'some1234keyq23' if Rails.env == 'production'
    

    에서 설정 / 초기화 / devise.rb 지금은 개발뿐만 아니라 생산에 작품!

  9. ==============================

    9.사용자 설정 \ 초기화 \ secret_token.rb가있는 경우 확인 :

    사용자 설정 \ 초기화 \ secret_token.rb가있는 경우 확인 :

    YourAppName::Application.config.secret_token
    

    그것은해야한다:

    YourAppName::Application.config.secret_key_base
    
  10. ==============================

    10.나는 자식에서 새 컴퓨터에 내 저장소를 복제. 그만큼

    나는 자식에서 새 컴퓨터에 내 저장소를 복제. 그만큼

    config/secrets.yml 
    

    해당 파일이 존재하지 않았다, 그래서 파일 내 .gitignore 목록이며, 유증 파일을 만들지 않습니다.

    내가 파일을 추가 한 후 다시 달렸다

    rails generate devise MODEL
    

    그것은했다.

  11. ==============================

    11.나는 같은 문제가 있습니다. 문제는 routes.rb에서이 라인에 의해 발생했다 :

    나는 같은 문제가 있습니다. 문제는 routes.rb에서이 라인에 의해 발생했다 :

    devise_for :users, :skip => [:registrations]                                                   
    as :user do
      get 'users/edit' => 'devise/registrations#edit', :as => 'edit_user_registration'              
      put 'users' => 'devise/registrations#update', :as => 'user_registration'                      
      get '/users/sign_out' => 'devise/sessions#destroy'                                            
    end
    

    내가 그들을 주석과 그 후 나는 실행

    $ rails generate devise:install
    

    그리고 그것은 완벽하게 평가했다. 그리고 이후 내가 주석 루트가.

  12. ==============================

    12.음,이 게시물 여기에 시도 거의 모든 다음되었다. 나는 devise.rb의 열쇠를 추가했습니다. 하지만 난 여전히 같은 오류가 발생했다.

    음,이 게시물 여기에 시도 거의 모든 다음되었다. 나는 devise.rb의 열쇠를 추가했습니다. 하지만 난 여전히 같은 오류가 발생했다.

    어쩌면 바보 같은 대답하지만, 내가했던 일은 저장소에 devise.rb 키를 밀어했다.

  13. ==============================

    13.고치다:

    고치다:

    기술적 세부 사항:

  14. ==============================

    14.레일 5.2.0과 고안 4.4.1와 같은 문제에 란

    레일 5.2.0과 고안 4.4.1와 같은 문제에 란

    /config/initializers/devise.rb에 다음 드롭

    config.secret_key = Rails.application.credentials.secret_key_base
    
  15. ==============================

    15.위의 것들에 좀 더 완전한 대답을하려고 : devise_auth_token 보석의 문서에서 언급 한 바와 같이

    위의 것들에 좀 더 완전한 대답을하려고 : devise_auth_token 보석의 문서에서 언급 한 바와 같이

    Devise.setup do |config|   
    # The e-mail address that mail will appear to be sent from   
    # If absent, mail is sent from "please-change-me-at-config-initializers-devise@example.com"  
    config.mailer_sender = "support@myapp.com"
    
    # If using rails-api, you may want to tell devise to not use ActionDispatch::Flash   
    # middleware b/c rails-api does not include it.   
    # See: http://stackoverflow.com/q/19600905/806956  
    config.navigational_formats = [:json] end
    

    저도 같은 문제가 있고, 여기에 언급처럼, 나는 유증 이니셜을 생성하고, 그것에 config.secret_key = ENV [ '고안 SECRET_KEY'] 줄을 추가합니다.

  16. ==============================

    16.나는 적합한 솔루션을 모르지만 그것은 일하고있다. 당신은 그것을 시도 할 수 있습니다. 내 GitLab 계정에서 내 프로젝트를 복제하고 있었고, 난 내 로컬 서버에서 실행할 때 오류 메시지가 :

    나는 적합한 솔루션을 모르지만 그것은 일하고있다. 당신은 그것을 시도 할 수 있습니다. 내 GitLab 계정에서 내 프로젝트를 복제하고 있었고, 난 내 로컬 서버에서 실행할 때 오류 메시지가 :

    레이크 중단! Devise.secret_key가 설정되지 않았습니다. 당신의 고안 초기화 다음을 추가하십시오 : config.secret_key = '- 비밀 키 -'

    열기 설정 / 초기화 / devise.rb이 줄을 추가

    config.secret_key = '<= % ENV [ "SECRET_KEY_BASE"] %>'

    이 코드 라인은 내 문제를 해결된다.

  17. from https://stackoverflow.com/questions/18080910/devise-secret-key-was-not-set by cc-by-sa and MIT license