Я создаю API-интерфейс rails, где
ajax-запрос (передний конец) отправляет запрос на получение rails следующим образом:
get-запрос -> вход в систему контроллера пользователя (user # index) -> Контроллер экранов (screen # index) -> отправить ответный ответ переднему краю.
Проблема: Сеанс входа в систему теряется при перенаправлении его на экран # index.
Код:
FRONTEND (расположенпо адресу: 127.0.0.1/3000, разрешенные значения Cors на рельсах)
$.ajax({
url: "http://127.0.0.1:6536/user/index",
type: 'GET',
success: function(result){
console.log(result);
}
});
BACKEND
маршруты:
get '/user/index' => "user#index", defaults: {format: 'json'}
get '/screen', to: 'screen#index', defaults: {format: 'json'}
UserController:
class UserController < ActionController::Base
def index
# check if user exists exists in database
session[:user_id] = 23
Rails.logger.info '----------- registered user'
Rails.logger.info session['user_id']
redirect_to '/screen'
end
end
ScreenController:
class ScreenController < ActionController::Base
def index
Rails.logger.info '----------- fetching user'
Rails.logger.info session['user_id']
user = User.find(session['user_id']) # do something with the user
render json: { status: 'registered' }, status: :ok
end
end
ВЫХОД
Started GET "/user/index" for 127.0.0.1 at 2018-06-04 11:50:24 +0530
Processing by UserController#index as JSON
----------- registered user
23
Redirected to http://127.0.0.1:6536/screen
Completed 302 Found in 34ms (ActiveRecord: 10.5ms)
Started GET "/screen" for 127.0.0.1 at 2018-06-04 11:50:24 +0530
Processing by ScreensController#index as JSON
----------- fetching user
User Load (0.5ms) SELECT "users".* FROM "users" WHERE "users"."id" IS NULL LIMIT [["LIMIT", 1]]
Completed 500 Internal Server Error in 5ms (ActiveRecord: 0.5ms)
ScreenController имеет нулевые значения сеанса.Почему сеанс теряется между перенаправлением контроллера?
Если я получаю страницу http://127.0.0.1:6536/user/index в браузере, она работает нормально.
Rails входит в систему поиска браузера:
Started GET "/user/index" for 127.0.0.1 at 2018-06-04 12:26:51 +0530
Processing by UserController#create as JSON
----------- registered user
23
Redirected to http://127.0.0.1:6536/screen
Completed 302 Found in 1ms (ActiveRecord: 0.0ms)
Started GET "/screen" for 127.0.0.1 at 2018-06-04 12:26:51 +0530
Processing by ScreenController#index as JSON
----------- fetching user
23
Completed 200 OK in 2ms (Views: 0.4ms | ActiveRecord: 0.0ms)