These are chat archives for dektrium/yii2-user

25th
Nov 2015
Максим
@maxyc
Nov 25 2015 15:34
Есть кто?
Мож я не видел, но есть ли какая схема жизни процесса авторизации/регистрации через соц сети
Pavel Sokolov
@ComradePashka
Nov 25 2015 15:49
какая такая схема жизни? О_о
'authClientCollection' в конфиге прописываешь с указанием параметров созданных приложений и на каждый clients появиться кнопка авторизации через эту сеть. в БД в нужные таблицы все само прописывается. а нужный функицонал API уже сам реализуешь. с момента авторизации API доступен
Максим
@maxyc
Nov 25 2015 15:53
не не
я не о том
я ща расширил openID компонент для авторизации в стим
/**
 * Created by PhpStorm.
 * User: maxyc
 * Date: 25.11.15
 * Time: 0:51
 */
namespace app\components\authclient;

/**
 * Class SteamClient
 * @package app\components\authclient
 */
class SteamClient extends \yii\authclient\OpenId
{
    public $STEAM_SECRET_KEY = null;
    public $authUrl = 'http://steamcommunity.com/openid';

    /**
     * @inheritdoc
     */
    protected function initUserAttributes()
    {
        preg_match('#steamcommunity\.com\/openid\/id\/(\d+)#', $this->claimedId, $_claimedId);
        $claimedId = $_claimedId[1];

        $request = json_decode($this->sendRequest('http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/', 'GET', [
            'key'=>$this->STEAM_SECRET_KEY,
            'steamids'=>$claimedId
        ]))->response->players[0];

dd(['claimId'=>$claimedId, 'request'=>$request, 'this'=>$this, 'user'=>\Yii::$app->user, \Yii::$app->user->id]);
        return $this->api('me', 'GET', [
            'fields' => implode(',', $this->attributeNames),
        ]);
    }
}
так вот в initUserAttributes мне приходит ответ.
только вот модуль лишь создает пользователя, запрашивая у него логин и пароль и имя пользователя далее.
а мне хочется сохранить данные полученные от стима
[steamid] => 76561198002605808
                    [communityvisibilitystate] => 3
                    [profilestate] => 1
                    [personaname] => MaXyC [InsmartRu]
                    [lastlogoff] => 1448464649
                    [profileurl] => http://steamcommunity.com/id/maxyc/
                    [avatar] => https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/5a/5a020b63f87ff93ef1d80b7b4e488627ba695d0c.jpg
                    [avatarmedium] => https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/5a/5a020b63f87ff93ef1d80b7b4e488627ba695d0c_medium.jpg
                    [avatarfull] => https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/5a/5a020b63f87ff93ef1d80b7b4e488627ba695d0c_full.jpg
                    [personastate] => 0
                    [realname] => Maxyc Grechushnikov
                    [primaryclanid] => 103582791429521408
                    [timecreated] => 1226554167
                    [personastateflags] => 0
                    [loccountrycode] => RU
это вывод информации $request
но беда в том, что на initUserAttributes мне не известен UserId чтобы я мог сохранить эти данные
и вот потому и спросил... чччто не понятна схема жизни. куда дальше и какие методы вызываются...
Pavel Sokolov
@ComradePashka
Nov 25 2015 15:58
а steamid это не он ли ?
Максим
@maxyc
Nov 25 2015 15:58
он.
это ид пользователя в стиме
Pavel Sokolov
@ComradePashka
Nov 25 2015 16:02
не знаю, поковыряйся чтоли тут: @vendor/yiisoft/yii2-authclient/clients на примерах проще понять наверное будет
Максим
@maxyc
Nov 25 2015 16:02
ну вот коввыряю. спасиб
Pavel Sokolov
@ComradePashka
Nov 25 2015 16:03
там ваще вроде бы initUserAttributes() только у OAuth используется а у тебя вроде как OpenID
Максим
@maxyc
Nov 25 2015 16:07
не, это у BaseClient оно для всех.
Vitaly
@hellvesper
Nov 25 2015 16:48
че тут