Я использую Janrain для обработки пользовательских сеансов в моем приложении Ruby on Rails. Похоже, он работает, однако я не знаю, как определить, вошел ли пользователь в систему или нет, или получить доступ к информации о текущем пользователе. Создается ли переменная сеанса после входа пользователя?
Доступ к текущей информации о пользователе с помощью Janrain и Ruby on Rails
Ответы (2)
Предполагая, что вы имеете в виду Janrain Social Login (Engage), как только пользователь аутентифицируется через Social Provider, виджет получает токен Janrain OAuth, действительный в течение 60 минут. Вы можете использовать этот токен для получения данных профиля пользователя через эту конечную точку API: (https://{your-engage-domain.com}/api/v2/auth_info).
Janrain Social Login не ведет журнал в данных сеанса, связанных с состоянием. Это просто облегчает аутентификацию и нормализует получение данных профиля пользователя от нескольких поставщиков аутентификации. Как только происходит успешное событие аутентификации, ваш сервер должен проверить токен аутентификации, а затем установить любую форму работы, связанную с сеансом авторизации.
Большинство социальных провайдеров возвращают токены доступа, действительные в течение 30–60 дней.
попробуйте переменную 'current_user', она работает в большинстве библиотек аутентификации rails, например:
#in the erb file:
<% current_user = session[:user_id] %>
# or in the rb file:
class MusicController < ApplicationController
before_filter :authenticate_user! # just like devise
def index
# same methods and api as devise.
return if signed_in? and current_user.email
end
end
# put this method in application_controller.rb
def current_user
@current_user ||= User.find_by_id(session[:user_id])
end
дополнительные сведения см. в этом примере: https://github.com/hatem/janrain-engage-demo< /а>