Как получить пользователя через api devise?

Есть сервис и мобильное приложение. Сервис написан на RubyOnRails и имеет авторизацию через devise. Задача регистрацию и авторизацию через мобильное приложение. Общение приложения и сервиса парализовано через json. По если пытюсь просто отправить ajax (post) на action формы авторизации - получаю ActionController::InvalidAuthenticityToken in Devise::SessionsController#create (это сообщение отображается в html), подскажите, как формируется этот токен и как заставить devise отдавать данные а json?
  • Вопрос задан
  • 308 просмотров
Решения вопроса 1
alexfedoseev
@alexfedoseev
React & Rails Dev
Вам нужно настроить аутентификацию по токену. Devise отказался от поддержки таковой, поэтому приходится танцевать с бубнами.

Как это должно работать в теории. Пользователь при регистрации отправляет POST с логином/паролем. Devise создает пользователя и параллельно присваивает ему токен (токен != пароль). В ответе он отдает именно этот токен, который вы должны сохранить где-то на клиенте. При каждом запросе от клиента к рельсам вы должны передавать этот токен в http-заголовке, чтобы Devise по этому токену аутентифицировал пользователя.

Дальше покопайте доки этого гема: https://github.com/gonzalo-bulnes/simple_token_aut...
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
miraage
@miraage
Старый прогер
Насколько я помню, это CSRF.
Дальше копайте сами.
Ответ написан
Комментировать
@telray
Токен формируется при аутентификации. И вам надо его ставить в хедер запросов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы