2014-02-03 2 views
1

Я пытаюсь создать API, который я могу использовать для нескольких клиентских приложений (веб, мобильный и т. Д.). Я размещаю API на Heroku, поэтому адрес API будет чем-то вроде foo.herokuapp.com.Аутентификация для моего API в отдельном домене

Я хочу, чтобы удовлетворить все запросы через это, но я также хочу иметь отдельный веб-клиент для взаимодействия с ним, скажем, bar.herokuapp.com

Прямо сейчас, у меня есть проверка подлинности по протоколу HTTPS с использованием куки работает хорошо в домене API, но как я могу аутентифицировать запросы от веб-клиента (bar.herokuapp.com) к API (foo.herokuapp.com), поскольку он находится в отдельном домене?

+0

Какую аутентификацию вы используете в foo.herokuapp.com? Является ли webapp чем-то вроде SPA? –

+0

Да, bar.herokuapp.com будет чем-то вроде SPA. Я использую Passport, модуль Node.js для auth на API (foo.herokuapp.com), и он отправляет cookie обратно для аутентификации. –

ответ

1

При использовании проверки подлинности на основе куки в foo.herokuapp.com вы можете изменить масштаб куки, чтобы быть .herokuapp.com таким образом CORS запросы с withCredentials от bar.herokuapp.com будет отправлять куки.

Одна проблема, которую я вижу, заключается в том, что herokuapp.com не является ВАШИМ. Кто-то может создать приложение в герою, перенаправить своих пользователей и украсть файл cookie. Тогда они смогут назвать ваш api украденным печеньем. Поэтому я настоятельно рекомендую вам купить домен, иначе не используйте этот подход.

Другой подход, который очень хорошо подходит для этого случая, заключается в использовании проверки почтовых ящиков JSON Cookies vs Tokens.

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