Пароль пользователя Rails 3 в URL для аутентифицированного ресурса Devise - PullRequest
0 голосов
/ 15 ноября 2011

Я не понимаю, почему я не могу заставить это работать в браузере. Я хочу протестировать аутентифицированный ресурс Devise, используя URL-адрес с именем пользователя и паролем в URL-адресе, например

http://joe:1234@localhost:3000/blog/latest

Он не аутентифицируется и вместо этого перенаправляет меня на страницу входа в Devise. Однако, если я сделаю это вызов JSON, он работает

http://joe:1234@localhost:3000/blog/latest.json

Это также работает, если я тестирую его, используя curl

curl http://joe:1234@localhost:3000/blog/latest

Мысли

Ответы [ 2 ]

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

Devise использует навигационные форматы, чтобы определить, должен ли он выдавать 401 при аутентификации.Запросы JSON и XML будут 401 по умолчанию.HTML-запрос, однако, будет перенаправлен на вход в систему.Чтобы это исправить, перейдите к devise.rb в инициализаторах, раскомментируйте эту строку и удалите HTML из массива:

config.navigational_formats = [:"*/*", "*/*"]
0 голосов
/ 15 ноября 2011

Может захотеть посмотреть на токен, проверяемый из устройства.Вероятно, это наиболее эффективный способ передачи учетных данных прямо из коробки с помощью devise.

Token Authenticatable: подписывает пользователя на основе токена аутентификации (также известного как «токен единого доступа»).Токен может быть передан как через строку запроса, так и через HTTP Basic Authentication.

https://github.com/plataformatec/devise/

Более подробно, и если вам нужна стратегия многократного использования, как показано в этом посте, вот как-То: https://github.com/plataformatec/devise/wiki/How-To:-Use-HTTP-Authentication

В Devise встроена базовая аутентификация HTTP, но в вашем приложении должны быть две мелочи:

* :database_authenticatable strategy in your user/account model
* config.http_authenticatable = true in the devise initializer
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...