Size: a a a

2020 August 01

A

A in Yii Framework 3
Я в конце хочу, чтобы в своих контроллерах, я мог получить текущего юзера, как сейчас сделано в yii-demo
источник

Д

Дмитрий in Yii Framework 3
A
Я хочу на React сделать приложение и на Yii3 Api

Я правильно понимаю, что мне нужно написать свой middleware для того, чтобы он проверял по токену есть ли такой пользователь ? Токен буду передавать через заголовок Authorization
да, всё правильно.
источник

Д

Дмитрий in Yii Framework 3
A
Я хочу на React сделать приложение и на Yii3 Api

Я правильно понимаю, что мне нужно написать свой middleware для того, чтобы он проверял по токену есть ли такой пользователь ? Токен буду передавать через заголовок Authorization
можно ориентироваться на BasicAuth middleware
источник

A

A in Yii Framework 3
Я сейчас наткнулся на это - https://github.com/yiisoft/docs/blob/master/guide/en/structure/middleware.md

Тут BasicAuth описывается, но по сути, я же могу заменить его на Http и по идее всё же должно заработать из коробки

Сейчас буду чекать крч
источник

АН

Александр Некрасов... in Yii Framework 3
A
Я в конце хочу, чтобы в своих контроллерах, я мог получить текущего юзера, как сейчас сделано в yii-demo
источник

АН

Александр Некрасов... in Yii Framework 3
в контроллере уже из request берешь пользователя
источник

A

A in Yii Framework 3
А, так даже лучше
Спасиб
источник

A

A in Yii Framework 3
Александр Некрасов
в контроллере уже из request берешь пользователя
А у тебя нет примера реализации этого на гите ? 😄
чёт не догоняю пока

чтобы это заработало, мне же нужно

\Yiisoft\Auth\AuthInterface::class =>
 сюда передать BasicAuth... например или ошибаюсь ?
источник

АН

Александр Некрасов... in Yii Framework 3
A
А у тебя нет примера реализации этого на гите ? 😄
чёт не догоняю пока

чтобы это заработало, мне же нужно

\Yiisoft\Auth\AuthInterface::class =>
 сюда передать BasicAuth... например или ошибаюсь ?
у меня провайдер, но тоже самое можно в конфиге final class AuthProvider extends ServiceProvider
{
   public function register(Container $container): void
   {
       $container->set(
           AuthInterface::class,
           static function (ContainerInterface $container) {
               $userRepository = $container->get(UserRepositoryInterface::class);

               $authenticator = new Composite($container);
               $authenticator->setAuthMethods(
                   [
                       new HttpHeader($userRepository),
                   ]
               );

               return $authenticator;
           }
       );
   }
}
источник

АН

Александр Некрасов... in Yii Framework 3
на гите нету
источник

A

A in Yii Framework 3
Александр Некрасов
у меня провайдер, но тоже самое можно в конфиге final class AuthProvider extends ServiceProvider
{
   public function register(Container $container): void
   {
       $container->set(
           AuthInterface::class,
           static function (ContainerInterface $container) {
               $userRepository = $container->get(UserRepositoryInterface::class);

               $authenticator = new Composite($container);
               $authenticator->setAuthMethods(
                   [
                       new HttpHeader($userRepository),
                   ]
               );

               return $authenticator;
           }
       );
   }
}
Спасиб
ща буду проверять
источник

A

A in Yii Framework 3
А вот этот паттерн я должен где-то задавать ?
источник

A

A in Yii Framework 3
Не знаю с чем связано, но у меня заработало, когда я этот pattern объявил как null дефолтом, а до этого фреймворк кидал исключение  на этот кусочек кода

 if ($this->pattern !== null) {
               if (preg_match($this->pattern, $authHeader, $matches)) {
                   $authHeader = $matches[1];
               } else {
                   return null;
               }
           }

Error: Typed property Yiisoft\Auth\Method\HttpHeader::$pattern must not be accessed before initialization in
источник

A

A in Yii Framework 3
@thenotsoft У тебя такого не было ?
источник

СП

Сергей Предводителев... in Yii Framework 3
A
Не знаю с чем связано, но у меня заработало, когда я этот pattern объявил как null дефолтом, а до этого фреймворк кидал исключение  на этот кусочек кода

 if ($this->pattern !== null) {
               if (preg_match($this->pattern, $authHeader, $matches)) {
                   $authHeader = $matches[1];
               } else {
                   return null;
               }
           }

Error: Typed property Yiisoft\Auth\Method\HttpHeader::$pattern must not be accessed before initialization in
Это рушелярка по которой токен будет вычленяться из хедера
источник

A

A in Yii Framework 3
это я догнал
источник

A

A in Yii Framework 3
а если у меня нет регулярки
источник

СП

Сергей Предводителев... in Yii Framework 3
Надо null задать
источник

СП

Сергей Предводителев... in Yii Framework 3
У поля нет значения по умолчанию
источник

СП

Сергей Предводителев... in Yii Framework 3
Хотя там только string, null не предусмотрен... Странно
источник