, _controller.
build_resource, session_controller
def build_resource(hash=nil)
self.resource = resource_class.new_with_session(hash || {}, session)
end
, ( , , ). , build_resource registrations_controller.
, , , create session_controller
super
, create session_controller, session_controller -
def create
self.resource = warden.authenticate!(auth_options)
set_flash_message(:notice, :signed_in) if is_flashing_format?
sign_in(resource_name, resource)
yield resource if block_given?
respond_with resource, location: after_sign_in_path_for(resource)
end
gist , json api.
include
include Devise::Controllers::InternalHelpers
session_controller. , build_resource.
!
Edit
def create
respond_to do |format|
format.html {
super
}
format.json {
resource = User.find_for_database_authentication(:login=>params[:user_login][:login])
return invalid_login_attempt unless resource
if resource.valid_password?(params[:user_login][:password])
sign_in("user", resource)
render :json=> {:success=>true, :auth_token=>resource.authentication_token, :login=>resource.login, :email=>resource.email}
return
end
invalid_login_attempt
end