0

В настоящее время я работаю над приложением Rails 5, которое выступает в качестве «Backend for Frontend», что означает, что он получит вызовы API от клиентов и распространяет их на другие дополнительные API (Microservices) , Эти API-интерфейсы защищены OAuth, а «Backend for Frentend» (теперь форма FeBe) должна содержать токен доступа в хранилище сеансов. Но, к сожалению, FeBe не возвращает заголовок Set-Cookie, поэтому сеансы не работают. В мой контроллер у меня есть и это:Нет заголовка Set-Cookie, возвращаемого по запросу API JSON

skip_before_filter :verify_authenticity_token 

Любая идея, почему Rails не посылает заголовок Set-Cookie? (Я тестирую API на данный момент с помощью Postman - нужно ли включать некоторые конкретные заголовки в запрос, чтобы он работал?)

Спасибо и приветствую!

Редактировать

я не использовать режим API

ответ

0

Использование куки для аутентификации API не очень жизнеспособный подход, как печенье только действительно работает для браузеров и не очень далеко за пределами одного домена.

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

Есть несколько драгоценных камней, которые могут помочь с аутентификацией на токене, такой как Knock.

Однако, если ваш FeBe действительно должен делегировать фактическую аутентификацию другим провайдерам (например, Twitter или Facebook), что добавляет довольно сложную задачу, и вы можете поэкспериментировать с просто установкой простого ключа/пароля на основе auth, так как есть довольно немного вещей, чтобы обернуть голову вокруг уже.

+0

Причина, по которой я хочу использовать сеанс, - это безопасность. Я где-то читал (извините, не могу вспомнить URL-адрес), что не желательно иметь конфиденциальную информацию, такую ​​как токен доступа на клиенте, - но лучше «скрыть» ее в сеансе. Конечно, это работает только для браузеров; мобильному приложению необходимо будет хранить сам токен доступа. Аутентификация Microservices позже уже понятна и отлично работает. – Daniel

Смежные вопросы