• Совместное использование Yii1 и Yii2?

    piromanlynx
    @piromanlynx
    Системный администратор в Perfect Solutions
    Если имеется два именно поддомена, то:
    1. Нужно ставить куку с токеном на *.domain.com
    2. в куке с токеном должен быть токен, по которому Ваше новое приложение на yii2 налету авторизует пользователя.

    По сути - у авторизации 2 логические точки входа: старая форма входа и кука-токен.
    Только не забудьте в токен добавить что нибудь рандомное и подпись, примерно так:
    $salt = "какая то секретная строка";
    $uid = ваш id юзера;
    $ts = time();
    $sign = sha1($uid.$ts.$salt);
    $token = json_encode([ 'user_id' => $uid,  'ts'=>$ts, 'sign'=>$sign ]);

    Валидировать такой токен нужно так:
    $salt = "какая то секретная строка"; //та же самая
    $token = json_decode($_COOKIE['..'], true);
    $uid = $token->user_id;
    $signGood = sha1($uid.$token['ts'].$salt);
    if ($signGood === $token['sign']) {
      //все окей, авторизуем $uid
    } else {
      //какая то странная кука, не авторизуем
    }

    Еще можно проверить время выдачи куки (ts) чтобы он не превышал каких то реальных границ, но в большинстве проектов это излишне и приведет только к глюкам
    Ответ написан
    2 комментария