#ruby-on-rails
#ruby-on-rails
Вопрос:
У меня есть этот admin_controller
def login
if request.post?
if params[:full_name] == "adm" amp;amp; params[:password] == "123"
data = { :success => 'true', :msg => "Welcome, #{params[:full_name]}"}
#redirect_to :action => :welcome
else
data = { :failure => 'true', :msg => "Username or Password wrong !"}
end
render :text => data.to_json, :layout => false
end
end
def welcome
end
и у меня есть login.js
… все работает!
Как встроить sessions
?
Я не понимаю, как я могу. Пожалуйста, помогите мне.
У меня на странице есть несколько ссылок, и когда я вошел в систему и нажал на ссылку, я получаю другую страницу (New post)
, отлично! Но если я вернусь, my application
хочет, чтобы я снова ввел логин и пароль. И если я введу URL-адрес своей ссылки, (New post)
я попаду туда без проблем, но это неправильно, там должен быть текст что-то вроде: « Log in first
«
Ответ №1:
Краткий ответ:
session[:user_id] = id_of_user_that_just_signed_in
application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery
helper_method :current_user
private
def current_user
@current_user ||= User.find_by_id(session[:user_id]) if session[:user_id]
end
end
Длинный ответ: Я написал руководство по использованию Omniauth, и в одной части («хранилище сеансов») вы видите обработку сеанса и написание соответствующих помощников: http://www.communityguides.eu/articles/16 (с полным кодом на Github)