How do I login a user with devise? How do I login a user with devise? ruby ruby

How do I login a user with devise?


If you want to sign in a user, use the sign_in helper inside your controller's action:

sign_in(:user, user)


  resource = warden.authenticate!(:scope => resource_name)   sign_in(resource_name, resource)


I found this post useful for setting up a login for request specs. https://makandracards.com/makandra/37161-rspec-devise-how-to-sign-in-users-in-request-specs

module DeviseRequestSpecHelpers  include Warden::Test::Helpers  def sign_in(resource_or_scope, resource = nil)    resource ||= resource_or_scope    scope = Devise::Mapping.find_scope!(resource_or_scope)    login_as(resource, scope: scope)  end  def sign_out(resource_or_scope)    scope = Devise::Mapping.find_scope!(resource_or_scope)    logout(scope)  endend

Include it in your spec_helper

RSpec.configure do |config|  config.include DeviseRequestSpecHelpers, type: :requestend

And sign in as needed

sign_in create(:user, name: 'John Doe')