私はLaravel 5.4アプリケーションを使用しています。これは外部APIから管理ユーザーを認証する必要があります。ログインするとユーザー情報を含むJSONが返されます。カスタムユーザープロバイダーをLaravel 5.4に追加する方法
私はこれにするために、カスタムガードを作成しています:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users'
],
'custom' => [
'driver' => 'session',
'provider' => 'customusers'
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
],
と、これは私のカスタムプロバイダです:その後
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'customusers' => [
'driver' => 'jsonresponse',
'model' => App\Admin::class,
]
],
、私が継続するかどうかはわかりません。その後、登録
(今、私はちょうどそれがEloquentUserProviderから拡張する必要があり、最終的に私がAPIに接続するために、いくつかの機能を上書きします)<?php
namespace App\Providers;
use Illuminate\Auth\EloquentUserProvider;
use Illuminate\Support\Str;
class CustomUserProvider extends EloquentUserProvider {
}
を私はthe one from George Buckinghamのようないくつかのチュートリアルを読んで、私は、カスタム・ユーザー・プロバイダを作成しましたApp \プロバイダ\ AuthServiceProvider
public function boot()
{
$this->registerPolicies();
Auth::provider('jsonresponse', function($app, array $config) {
return new CustomUserProvider($app['hash'], $config['model']);
});
}
とのconfig/app.php
'providers' => [
// Lots of other providers
// Own providers
App\Providers\CustomUserProvider::class,
],
中で、それの両方が、その後、私は次の取得エラー:
Argument 1 passed to Illuminate\Auth\EloquentUserProvider::__construct() must be an instance of Illuminate\Contracts\Hashing\Hasher, instance of Illuminate\Foundation\Application given, called in /var/www/public/iberorides/vendor/laravel/framework/src/Illuminate/Foundation/Application.php on line 612 and defined
私は私のCustomUserProviderのコンストラクタをオーバーライドし、AuthServiceProviderで閉鎖中のparamsを変更した場合、私は次のエラーを取得:
Argument 1 passed to Illuminate\Foundation\Application::bootProvider() must be an instance of Illuminate\Support\ServiceProvider, instance of App\Providers\IberoUserProvider given, called in /var/www/public/iberorides/vendor/laravel/framework/src/Illuminate/Foundation/Application.php on line 771 and defined
をこれは私が、私は物事致しておりませんと思わせます正しい方法。
誰かが正しい方向に私を置くことができますか?
ありがとうございました。
ありがとうございました!私はあなたのソリューションで同様の問題のための段階的な答えを作成しようとしました:https://stackoverflow.com/a/46224576/2056125 – Pengxer
ちょっと、ちょっと!私はまったく新しいlaravelアプリケーションを構築していますが、同様のシナリオで作業していますが、これらのメソッドでは「retrieveByCredentials」と「validateCredentials」をオーバーライドする方法が混乱しています。 APIのJsonレスポンスからユーザーモデルを構築しますか?前もって感謝します! –
@JuniorSilvaお寄せいただきありがとうございます。私はそこに答えられるように質問してみませんか? –