Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <% if signed_in? %>
- <li><%= link_to "Post", "signup", :class=> "post main-button-color" %></li>
- <li><%= link_to "Settings", "signup", :class=> "settings main-button" %></li>
- <li><%= link_to "Sign Out", "signout", :class=> "signout main-button" %></li>
- <% else %>
- <li><%= link_to "Sign Up", "signup", :class=> "signup main-button" %></li>
- <li><%= link_to "Sign In", "signin", :class=> "signin main-button" %></li>
- <% end %>
- def sign_in(user)
- remember_token = User.new_remember_token
- cookies[:remember_token] = {:value => remember_token, :expires => 8.hours.from_now} #or whenever
- user.update_attribute(:remember_token, User.hash(remember_token))
- self.current_user = user
- end
- def signed_in?
- !current_user.nil?
- end
- def current_user=(user)
- @current_user = user
- end
- def current_user
- remember_token = User.hash(cookies[:remember_token])
- @current_user ||= User.find_by_remember_token(cookies[:remember_token])
- end
- def sign_out
- self.current_user = nil
- cookies[:remember_token] = nil
- end
- protect_from_forgery with: :exception
- include SessionsHelper
- before_save :create_remember_token
- def User.new_remember_token
- SecureRandom.urlsafe_base64
- end
- def User.hash(token)
- Digest::SHA1.hexdigest(token.to_s)
- end
- private
- def create_remember_token
- self.remember_token = SecureRandom.urlsafe_base64
- end
- def sign_in(user)
- # Create a token
- auth_token = SecureRandom.urlsafe_base64
- # Store the token in the browser
- cookies.permanent[:auth_token] = auth_token
- # Encrypt the token, store in database
- user.update_attribute(:auth_token, Digest::SHA1.hexdigest(auth_token))
- # Set current session's user
- self.current_user = user
- end
- def sign_in(user)
- remember_token = User.new_remember_token
- cookies[:remember_token] = {:value => remember_token, :expires => 8.hours.from_now} #or whenever
- user.update_attribute(:remember_token, User.encrypt(remember_token))
- self.current_user = user
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement