Пользовательский хеш Laravel Passport для создания токена - PullRequest
0 голосов
/ 03 октября 2018

Я использовал хэш SHA1 для пароля, подобного этому: https://arjunphp.com/laravel-5-sha1-encryption-instead-of-bcrypt/

Сейчас я использую API паспорта для создания токена, но он не позволяет мне создавать токен, так как хэш измененnow.

Symfony \ Component \ Debug \ Exception \ FatalThrowableError: Аргумент 1, передаваемый в Laravel \ Passport \ Bridge \ UserRepository :: __ construct (), должен быть экземпляром Illuminate \ Hashing \ HashManager, экземпляромApp \ Libraries \ ShaHash \ SHAHasher, указанный в файле C: \ xampp1 \ htdocs \ coursekartv2 \ vendor \ laravel \ passport \ src \ Bridge \ UserRepository.php в строке 26

Как переопределить UserRepository использовать SHAHasher вместо HashManager?Или любая другая помощь, чтобы преодолеть эту проблему.

Ответы [ 2 ]

0 голосов
/ 05 июня 2019

мы столкнулись с той же проблемой, что и описанная здесь, я работаю над Laravel API, который должен обрабатывать Passport, а также имеет свой собственный Hasher (SHA1).как в здесь

Наше исправление для этого заключалось не только в том, чтобы наш класс ShaHasher расширял HashManager следующим образом:

class ShaHasher extends HashManager implements Hasher { ..... }

, вам также нужно убедиться, что вашпровайдер для этого хэшера get и экземпляр контейнера $ app в конструкторе следующим образом:

<?php


namespace App\Providers;


use Illuminate\Hashing\HashServiceProvider;
use Psytech\ShaHasher;

class ShaHashServiceProvider extends HashServiceProvider {

    public function register()
    {
       $this->app->singleton('hash', function () {
           return new ShaHasher($this->app);
       });
    }

}

Надеюсь, это кому-нибудь поможет!

0 голосов
/ 04 октября 2018

Нашел решение:

Я использовал свой пользовательский хеш (SHAHasher) вместо Passport hashManager, теперь расширил HashManager для паспорта вместо полного нового хеша (SHAHasher).Так что теперь, даже когда я отправляю SHAHasher (пользовательский), он принимает, поскольку мой SHAHasher расширяет hashManager.

Расширяет hashManager внутри пользовательской библиотеки хешеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...