누구나 Sinatra와 Devise 보석을 설치 했습니까?Devat with Sinatra
Devise는 Warden을 기반으로하므로 Sinatra에서 작동해야하며 구현 방법에 대한 관련 정보를 찾을 수 없습니다.
누구나 Sinatra와 Devise 보석을 설치 했습니까?Devat with Sinatra
Devise는 Warden을 기반으로하므로 Sinatra에서 작동해야하며 구현 방법에 대한 관련 정보를 찾을 수 없습니다.
고안 정말 기본 랙 인증 프레임 워크는 warden에 대한 좋은 도우미와 단지 레일 중심의 래퍼이며, . 따라서 Rails와 함께 Sinatra를 사용하는 경우 Rails 앱에서 Devise를 사용하고 Sinatra 앱에서 관리자 (warden)를 직접 사용하면 동일한 사용자 세션 데이터가 표시됩니다.
Sinatra 앱에서는 Devise를 직접 사용할 수 없지만 Sinatra의 일부 조각으로 구성된 모듈 식 앱을 구축하는 경우 구성 요소 중 Devise/Warden을 사용할 수 있습니다.
Devise는 레일 전용으로 설계되었습니다. Sinatra에서는 사용할 수 없습니다.
당신은 체크 아웃 할 수있다 :
https://github.com/maxjustus/sinatra-authentication
http://www.gittr.com/index.php/archive/sinatra-basic-authentication-selectively-applied/
두 번째 링크는 더 이상 동작하지 않습니다. – zhon
나는 그것을 얻을 수 있었다. 몇 가지 주요 측면이 있었다 :
에서 사용할 수 있도록 /config.ru에서 대부분의 코드 관련 부분은 다음과 같습니다
#
# ...
# Rest with Rails
map "/" do
run MyApp::Application
end
# Anything urls starting with /slim will go to Sinatra
map "/slim" do
# make sure :key and :secret be in-sync with initializers/secret_store.rb initializers/secret_token.rb
use Rack::Session::Cookie, :key => '<< see, initializers/secret_store.rb >>', :secret => '<< copy from initializers/secret_token.rb >>'
# Point Warden to the Sinatra App
use Warden::Manager do |manager|
manager.failure_app = AppMain
manager.default_scope = Devise.default_scope
end
# Borrowed from https://gist.github.com/217362
Warden::Manager.before_failure do |env, opts|
env['REQUEST_METHOD'] = "POST"
end
run AppMain
end
자세한 내용은 http://labnote.beedesk.com/sinatra-warden-rails-devise을 참조하십시오.
레일 중심입니다. https://github.com/plataformatec/devise/blob/master/app/controllers/devise/confirmations_controller.rb – scragz