OpenID аутентификация через Steam - PullRequest
0 голосов
/ 01 декабря 2018

Большую часть дня я провел, пытаясь понять, как работает OpenID.Моя цель - создать простой сайт, на котором после нажатия кнопки входа в систему пользователи попадают на страницу входа в 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/7656119[0000000000]",
    "openid.identity": "https://steamcommunity.com/openid/id/7656119[0000000000]",
    "openid.return_to": "http://127.0.0.1:8000/resolve",
    "openid.response_nonce": "2018-12-01T14:49:46Z30hhn2/[someTEXTendingIN=]",
    "openid.assoc_handle": "1234567890",
    "openid.signed": "signed,op_endpoint,claimed_id,identity,return_to,response_nonce,assoc_handle",
    "openid.sig": "[someTEXTandNUMBERSendingIN=]"
}

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

Я почти уверен, это соответствующие документы, но мне все еще не ясно.Как я должен аутентифицировать пользователя с этими данными?

В этом посте я опустил некоторые значения, которыми, боюсь, было бы плохо поделиться.Эти заполнители были выделены скобками [].Кроме того, assoc_handle на самом деле 1234567890, что меня отталкивает, поскольку, согласно документации OpenID, оно используется для определения подписи.

Для ясности: эта страница, где собираются учетные данныене управляется мной, но является официальной страницей входа в OpenID для Steam.Steam - игровая платформа.https://steamcommunity.com/dev/ для справки.

1 Ответ

0 голосов
/ 01 декабря 2018

Для аутентификации Steam в nodejs вы можете использовать Passport.

Passport - это библиотека аутентификации, которая лучше всего работает с веб-приложением на основе Express.

Существует Steam-стратегия, которая может обрабатывать вашиАутентификация Steam.

Проверьте паспорт здесь

А это репозиторий для Стратегия Steam .Существует пример папки, в которой вы можете увидеть, как настроить аутентификацию Steam.

...