简体   繁体   中英

How redirect to a sign in page when the user is not authenticated

I want a add in action 'destroy' if/else than user was not logged, his redirect to signin page, but I'm doing wrong.

def destroy
    if user.sign_in
    sign_out
    redirect_to root_url
    else
      redirect_to signin_path
    end
  end

helper sessions_helper

  def sign_in(user)
    remember_token = User.new_remember_token
    cookies.permanent[:remember_token] = remember_token
    user.update_attribute(:remember_token, User.encrypt(remember_token))
    self.current_user = user
  end

how fix it? sorry for my bad English

In the destroy method you call to user.sign_in but in you helper you have this definition sign_in(user) you have to fix that using:

user.sign_in

And creating a method on class User

OR:

sign_in(user)

Passing user as a param with actual method defined.

EDITED

ApplicationController

def sign_in(user)
    remember_token = User.new_remember_token
    cookies.permanent[:remember_token] = remember_token
    user.update_attribute(:remember_token, User.encrypt(remember_token))
    self.current_user = user
 end

end

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM