Вход на сайт через Steam

mzeke

Участник
Сообщения
51
Реакции
4
Здравствуйте.

Скажите можно ли и как сложно реализовать sign in через аккаунт Steam, как это сделано на www.CSPL.ru и www.rgmix.eu ?

Заранее спасибо.
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
763
Вообще, это даже не авторизация. Ты просто получаешь steamid нужного тебе пользователя, а что делать с ним дальше - решать тебе.
Если хочешь полноценную авторизацию, ну ты сам пишешь, как пришлось мне, то делай сессию, записывай steamid и всё.
Вот мною переделанный вариант. Чутка дописать тебе остаётся его, ибо скрипт на cyberforum'е не хотел работать :D Мб руки кривые, ну да ладно.

steam_auth.php - собственно, само получение ид пользователя, перевод на steamcommunity.com и т.д.
auth.php - получает данные пользователя, записывает их в сессию.

В итоге, ты можешь вставить в любое место ссылку вида:
http://сайт.ру/steam_auth.php?login
Ну и далее всё по накатанной пойдёт.
Записанные переменные:
$_SESSION['psteam'] - steamid вида STEAM_1:....
$_SESSION['comid'] - id вида 7643242342.... (В ссылке на профиль стима стоит обычно)
$_SESSION['pname'] - ник пользователя в стиме
$_SESSION['pava'] - аватарка в полном размере
 

Вложения

  • script.zip
    1.4 КБ · Просмотры: 160

mzeke

Участник
Сообщения
51
Реакции
4
Primo, мне нужно сделать, чтобы человек ввел данные от стима, ввел код стим гуард и все. Он зарегался на сайте (форуме). Где его аватар это ава в стиме, а логин на сайте это логин стима. Так можно сделать?
 

mzeke

Участник
Сообщения
51
Реакции
4
Ибо вот что выдает после авторизации
 

Вложения

  • Снимок.jpg
    Снимок.jpg
    16.5 КБ · Просмотры: 188

ykpon

Владыка
Сообщения
702
Реакции
421
Primo, мне нужно сделать, чтобы человек ввел данные от стима, ввел код стим гуард и все. Он зарегался на сайте (форуме). Где его аватар это ава в стиме, а логин на сайте это логин стима. Так можно сделать?

Этим скриптом отправляешь юзверя по своей ссылке на логин в стим, он там логинится и его бросает обратно, а потом запиливаешь его логин, стимайди и куда хочешь.
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
763
ykpon, давай рассуждать логически. OpenID лишь получается id пользователя, ничего более. Сама авторизация - запись данных в сессию пользователя и работа с ней. Скрипт записывает данные в сессию, и не даёт пройти "авторизацию" снова, если данные уже записаны в сессию.
Что делать, как поступить, решать ТСу. Сессия записывается, значит авторизация работает. А вот под различные CMS нужно подстраивать скрипт. Мой скрипт для сайта с нуля.
 

ykpon

Владыка
Сообщения
702
Реакции
421
ykpon, давай рассуждать логически. OpenID лишь получается id пользователя, ничего более. Сама авторизация - запись данных в сессию пользователя и работа с ней. Скрипт записывает данные в сессию, и не даёт пройти "авторизацию" снова, если данные уже записаны в сессию.
Что делать, как поступить, решать ТСу. Сессия записывается, значит авторизация работает. А вот под различные CMS нужно подстраивать скрипт. Мой скрипт для сайта с нуля.

Да хоспади, там скрипт так называется. От openid сервиса там вообще только название.
Все данные он получает нормально и работает тоже.
И я не пойму, с каких пор OpenID то перестал получать все данные? Он как получал их, так и сейчас получает.
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
763
ykpon, какие все данные? Через openid идёт запрос к steam на получение id. Остальные данные, типа ника и т.д. получаются независимо от openid. Просто через steamapi. Нужно лишь знать id пользователя, данные которого ты хочешь получить.
 

ykpon

Владыка
Сообщения
702
Реакции
421
ykpon, какие все данные? Через openid идёт запрос к steam на получение id. Остальные данные, типа ника и т.д. получаются независимо от openid. Просто через steamapi. Нужно лишь знать id пользователя, данные которого ты хочешь получить.

openid - это название сервиса либо стандарт, смотря о чем конкретно речь, а не понятие, подразумевающее получение id.
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
763
ykpon, я тебе говорю, что он делает в данном случае, а не что такое openid ...
Опять недопонимание.
 

ykpon

Владыка
Сообщения
702
Реакции
421
ykpon, я тебе говорю, что он делает в данном случае, а не что такое openid ...
Опять недопонимание.

Кто "он"? Ссылку, что я прислал, ты открывал? Там код работоспособный. Через API получает любые данные, которые отдает Steam. И там не только ID.
 

HooLIGUN

MatchMaking CS:S / RGMIX.ru
Сообщения
1,079
Реакции
274
Здравствуйте.
Скажите можно ли и как сложно реализовать sign in через аккаунт Steam, как это сделано на www.CSPL.ru и www.rgmix.eu ?
Заранее спасибо.

mzeke, у rgmix движок IPB и там есть такой хук.
У нас стоит вот этот хук. Он стабильнее,чем выложил Sam_Fisher
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
763
Кто "он"? Ссылку, что я прислал, ты открывал? Там код работоспособный. Через API получает любые данные, которые отдает Steam. И там не только ID.

Дураком прикидываешься? (Знаю, что не дурак :D)
Снова, та же самая ситуация, как в другой темке. Перечитывай всё, что я написал, если тебе не лень.

Через openid получаем id пользователя steam.
Далее, в файле auth.php идёт получение самих данных пользователя (ника, и т.д.) через steamapi. В процессе получения данных пользователя openid не участвует.

Повторюсь, это переделанный скрипт с cyber'а, который вполне нормально работает.
 

ykpon

Владыка
Сообщения
702
Реакции
421
Дураком прикидываешься? (Знаю, что не дурак :D)
Снова, та же самая ситуация, как в другой темке. Перечитывай всё, что я написал, если тебе не лень.

Через openid получаем id пользователя steam.
Далее, в файле auth.php идёт получение самих данных пользователя (ника, и т.д.) через steamapi. В процессе получения данных пользователя openid не участвует.

Повторюсь, это переделанный скрипт с cyber'а, который вполне нормально работает.

Я не пойму, что ты доказать мне хочешь.
На киберфоруме скрипт выложен. Ты присылаешь то же самое, но что то пытаешься доказать, а что, я не знаю. :)
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
763
ykpon, так ты же докопался, что что-то не так :D
На киберфоруме такой же скрипт, не отрицаю, однако я выложил готовый с сессией.
Т.е. скрипт заново вызвать нельзя, если ты данные уже получены. Если данные не получены, то скрипт можно вызвать. Данные записываются в сессию, т.е. полученными данными, которые записаны в переменные, можно пользоваться в любом месте на домене (глобальные переменные, записанные на стороне сервера).
 
Сверху Снизу