2016-06-15 6 views
4

В настоящее время я делаю сайт, который требует, чтобы пользователь входил в систему с Steam, прежде чем они смогут использовать остальные функции моего сайта. Steam в настоящее время поддерживает только OPENID для аутентификации. То, как я сделал это в этих следующих шагов:Как интегрировать аутентификацию OPENID в архитектуру RIS api и front-end framework

  1. прессы пользователя на «Вход с паром» кнопку

  2. Мой передний конец перенаправляет к steamcommunity.com

  3. If пользователь успешно выполнил вход в систему, браузер пользователя должен перенаправить на мой бэкэнд, затем я добавлю пользователя в базу данных (если они еще не вошли в нее) и создайте веб-маркер JSON и отправьте его обратно на мой интерфейс.

    , например:

    myfrontend.com?token={my_json_web_token}

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

Я уже интегрировал свое приложение, но оно только набирает популярность, поэтому мне интересно, способ, которым я его реализовал.

Благодаря

+0

Не могли бы вы подробнее рассказать о вашем примере для того, как бэкенд передает маркер к переднему концу? Также на вашем стеке. – kag0

ответ

0

Это звучит как правильно идти об этом.

Следует отметить, что вы хотите удостовериться, что у вас есть защита CSRF, поскольку вы используете файлы cookie, но это было не совсем то, что вы просили.

CSRF example

+0

Как могли бы хакеры выполнить подделку подпроса? Им придется догадаться, что мой пароль jwt делает что-то подобное, не так ли? – mre12345

+0

@ mre12345 очень хорошее объяснение [здесь] (https://www.hacksplaining.com/exercises/csrf) (регистрация безболезненна sso). По существу, если вы помещаете свой токен в файл cookie, и браузер автоматически отправляет cookie на ваш сервер по каждому запросу: тогда страницы злоумышленников могут разрешать авторизованные запросы на ваш сайт, потому что браузер отправит им cookie. – kag0