Yii2 rest api надо взять ID пользователя

144
01 марта 2019, 13:10

Столкнулся с такой проблемой в yii2 rest api. Создаю магазин. там есть корзина и есть 2 варианта оформления товара. 1 Пользователь не авторизован. Он должен ввести свои данные.. 2. Пользователь авторизован. в первом случае в контроллере CheckOrder нужно заносить все данные о пользователе, если же пользователь авторизован нужно взять ID.

Как взять ID если авторизован, а если нет добавлять его все данные в REST API?

Делал так. не помогает

 public function behaviors()
    {
        $behaviors = parent::behaviors();
        $behaviors['authenticator'] = [
            'class' => CompositeAuth::className(),
            'authMethods' => [
                HttpBasicAuth::className(),
                HttpBearerAuth::className(),
                QueryParamAuth::className(),
            ],
        ];
        $behaviors['access'] = [
            'class' => AccessControl::className(),
            'rules' => [
                [
                    'allow' => true,
                    'roles' => ['@'],
                ],
            ],
        ];
        return $behaviors;
    }

Метод

public function actionIndex()
    {
        if(\Yii::$app->user->isGuest) {
            return ['msg' => 'GUEST'];
        } else {
            return \Yii::$app->user->identity->getId();
        }
    }
Answer 1

Не знаю на сколько это правильно

public static function getAuthTokenFromHeader()
{
    if(Yii::$app->request->getHeaders()->get('Authorization')){
        $authHeader = Yii::$app->request->getHeaders()->get('Authorization');
        preg_match('/^Bearer\s+(.*?)$/', $authHeader, $token);
        return $token[1];
    }
    else{
        return null;
    }
}
public static function findByToken($token)
{
    return static::findOne(['token' => $token]);
}
public static function getIdByToken()
{
    $user = self::findByToken(self::getAuthTokenFromHeader());
    if($user != null){
        return $user->id;
    }
    else{
        return null;
    }
}
READ ALSO
Генератор вещественных чисел C++

Генератор вещественных чисел C++

Пытаюсь выполнить задание:

228
Русский язык в консоли

Русский язык в консоли

Учу C++ по книжке Страуструпа, не выводятся русские символыВот код:

209
Ошибка во время выполнении программы

Ошибка во время выполнении программы

Решаю задачу по информатике :

175
Ошибка run-time check failure #2 Stack around the variable 'N' was corrupted

Ошибка run-time check failure #2 Stack around the variable 'N' was corrupted

Программа работает, но в конце выдает эту ошибку:

165