Разбираюсь в rails и, соответственно, пишу приложение.
В качестве метода авторизации мною выбран протокол oauth2, следовательно у себя я храню минимум информации о пользователе, а именно: имя, идентификаторы провайдеров oauth (к примеру vk.com user id) и аватар, и служебные, такие как user_id и timestamps. Если пользователь уже есть в моей базе, нового пользователя не создается, идет сразу перенаправление на профиль.
Как на уровне бекэнда определять, залогинен ли пользователь? Полагаю, что нужно создать (либо обновить создаваемую по умолчанию) куку с идентификатором сессии для того, чтобы определить есть логин или нет, а также привязать эту сессию к конкретному пользователю и передавать эти данные между запросами. Вот здесь я, во-первых, не уверен прав ли я, а во-вторых, если прав, то как именно это должно быть реализовано? Первое, что приходит в голову, это хранение в базе user_id и session_id, но при каждом запросе клиента лезть в базу сверяться мне кажется пустой тратой ресурсов.
Авторизацию непосредственно у провайдера я организовал сам через redirect и NET::HTTP, с этим проблем не возникло. Просто никогда раньше не сталкивался с работой с пользователями, поэтому не знал как правильно поддерживать статус "logged in".
помещайте в session[:user] то что вам нужно, сделайте хелперы и потом проверяйте, есть ли там чего или нет. Можете посмотреть как это делают в omniauth либо devise, правда там для этого используют warden.