У меня есть SessionsHelper
, где я определяю current_user
:
module SessionsHelper
def current_user
@current_user ||= user_from_remember_token
end
.
.
.
private
def user_from_remember_token
User.authenticate_with_salt(*remember_token)
end
def remember_token
cookies.signed[:remember_token] || [nil, nil]
end
end
У меня есть UsersController
, который имеет before_filter :authenticate
.Эта аутентификация находится в SessionsHelper
, и здесь у меня проблемы.
Rails обрабатывает все файлы cookie для меня, но я создал API для использования токенов для моего мобильного приложения, для которого я должен отправитьparams[:api_token]
при входе в систему и установке current_user
.
Я думаю, что должен сделать что-то вроде:
def current_user
@current_user ||=(user_from_remember_token || user_from_api_token)
end
, но я застрял, потому что не уверен, что смогу пройтиparams[:api_token]
в помощнике.
Может кто-нибудь указать мне правильное направление?
РЕДАКТИРОВАТЬ: У меня также есть,
class ApplicationController < ActionController::Base
protect_from_forgery
include SessionsHelper
...
end
, который позволяет мне использовать before_filter: authenticate от UsersController и доступ к этому методув SessionsHelper