Проверка представленного токена на предмет подлинности в базе данных с помощью devise - PullRequest
0 голосов
/ 20 февраля 2012

Я использую расширение Chrome для отправки данных в мое приложение Rails (контроллер staged_images). Итак, у меня есть форма, которая отправляет данные вместе с токеном аутентификации. У каждого пользователя есть токен, который генерируется Devise и сохраняется в таблице Users. Теперь мне нужно получить эти данные в контроллере и сравнить представленный токен с тем, который хранится в таблице Users.

Таким образом, действие create в моем контроллере должно выглядеть примерно так:

def create
    @user = User.find(params[:staged_image][:user_id])
    if @user.authentication_token == submitted_token # this is pseudo code, don't know exactly what to say here
      # execute code
    else
      # raise error
    end
end

У меня просто проблемы со спецификой проверки одного токена на другом. Я новичок. Помоги мне!

Спасибо

1 Ответ

1 голос
/ 20 февраля 2012

Вы должны перейти к контроллеру токена и иметь фильтр сверху и передать auth_token в своем вызове (http://yoursite/staged_images?auth_token=YOUR_STORED_TOKEN').

class staged_images < ApplicationController  

   before_filter :authenticate_user!

end

Devise вызовет исключение, если токенневерно.

Вы можете получить доступ к информации о пользователе с помощью помощника current_user

...