0

私のlaravelアプリケーションにデータベースがありません。私はこのアプリケーションでデータを取得するためにSoapサービスを使用しています。私はこのlinkの解決策からの指示に従って、既存のlaravelの認証をカスタム認証で置き換えるためにstackoverflowから行ってきました。しかし、私がメソッドretrieveByCredentials()に到達したとき、ユーザーの詳細のためにstdlibクラスオブジェクトを返すことができませんでした。代わりに、それはエラーの後に戻った。Laravel 5.4データベースなしのカスタム認証

(1/1) FatalThrowableError Type error: Argument 1 passed to App\Auth\SoapUserProvider::validateCredentials() must be an instance of Illuminate\Contracts\Auth\Authenticatable, instance of stdClass given, called in C:\xampp\7.1.7\htdocs\gazebo_revamp\vendor\laravel\framework\src\Illuminate\Auth\SessionGuard.php on line 380

これを少し忘れてください。

+0

'を照らし\契約が認証\ Authenticatable'は、うーん、十分に明確にする必要があり、\あなたが気づいた場合、Laravelは' stdlib'クラスが、契約を実装するクラスを使用していませんでした。サンプルプロジェクトの 'User'モデルを見てください。 –

+0

実際に私はモデルを石鹸サービスで置き換える必要があります。 。だから私はそれを乗り越える方法について何も考えていない。 – kushalbhaktajoshi

+0

あなたのコードを共有できましたか?また、適切な[laravelカスタムプロバイダに関するドキュメント](https://laravel.com/docs/5.4/authentication#adding-custom-user-providers)でその回答をクロスチェックしましたか?あなたが本当に 'Authenticatable'でユーザークラスを実装する必要があることが述べられているので。 –

答えて

0

カスタムのユーザー認証プロバイダを使用している場合は、retrieveByCredentials()メソッドで新しいUserクラスをインスタンス化して返します。これと同じように:

if ($api_auth === true) 
     return new \App\User(['id' => 0]); 
+0

これは、モデルを使用する場合にのみ正常に動作します。しかし私の状況では、Soap Serviceがモデルを置き換えたときにのみコードを動作させる必要があります。あなたにはこれに対する解決策がありますか? – kushalbhaktajoshi

関連する問題