@webe
frontend

Как авторизоваться на сайте через Steam?

Есть сайт.
Цель: получить steamid пользователя авторизации по OPENID

Покопался на чужих сайтах и понял что они делаю примерно такой запрос:
https://steamcommunity.com/openid/login?openid.ns.sreg=http://openid.net/extensions/sreg/1.1&openid.ns=http://specs.openid.net/auth/2.0&openid.mode=checkid_setup&openid.return_to=https://1111.com/site/auth/?authclient=steam&openid.realm=https://1111.com&utm_nooverride=1&openid.identity=http://specs.openid.net/auth/2.0/identifier_select&openid.claimed_id=http://specs.openid.net/auth/2.0/identifier_select


А в овтет приходит примерно такое:

https://test.ru/site/auth/?authclient=steam&openid.ns=http://specs.openid.net/auth/2.0&openid.mode=id_res&openid.op_endpoint=https://steamcommunity.com/openid/login&openid.claimed_id=https://steamcommunity.com/openid/id/11111111111111111111111&openid.identity=https://steamcommunity.com/openid/id/11111111111111111&openid.return_to=https://test.ru.ru/site/auth/?authclient=steam&openid.response_nonce=2021-08-19T17:48:50Z81ro/QMBE39EHI9EHII=&openid.assoc_handle=1234567890&openid.signed=signed,op_endpoint,claimed_id,identity,return_to,response_nonce,assoc_handle&openid.sig=y/K+MzOwMzOwMzOwMzOw/xoFvxoFvxoFv=


steamID получен, 11111111111111111
Но как я могу быть уверенным что это был реальный редирект от steam, ведь кто угодно может поднять локальный домен и направить такой же get запрос с любым steamID
  • Вопрос задан
  • 213 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Используйте готовую библиотеку, https://openid.net/developers/libraries/
Если хотите делать самостоятельно, то изучайте протокол OpenID, https://openid.net/developers/specs/ , там предусмотрено два варианта защиты - общий секрет на основе Диффи-Хеллмана или запрос подтверждения.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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