Nano Hash - криптовалюты, майнинг, программирование

Аутентификация OpenID через Steam

Я потратил большую часть дня, пытаясь понять, как работает 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

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

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

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

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

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

01.12.2018
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..