0

Je n'ai aucune base de données dans mon application laravel. J'utilise le service de savon pour la récupération de données dans cette application. J'ai suivi les instructions de la solution de ce link de stackoverflow pour remplacer l'authentification existante laravel avec l'authentification personnalisée. Mais quand j'ai atteint la méthode retrieveByCredentials(), je ne pouvais pas retourner l'objet de classe stdlib pour les détails de l'utilisateur. Au lieu de cela, il est retourné erreur suivante.Laravel 5.4 authentification personnalisée sans base de données

(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

Veuillez apporter quelques précisions à ce sujet.

+0

'Illuminate \ Contrats \ Auth \ Authenticatable' hmm, doit être suffisamment clair, si vous avez remarqué, Laravel n'a pas utilisé la classe' stdlib', mais une classe qui implémente le contrat. Jetez un coup d'oeil sur les modèles 'User' du projet exemple. –

+0

en fait j'ai besoin de remplacer le modèle avec un service de savon. . donc je n'ai aucune idée sur la façon de surmonter cela. – kushalbhaktajoshi

+0

pourriez-vous partager votre code? Aussi, avez-vous vérifié cette réponse avec la bonne [documentation concernant le fournisseur de laravel] (https://laravel.com/docs/5.4/authentication#adding-custom-user-providers)? comme il est dit que vous aurez besoin de vraiment mettre en œuvre la classe d'utilisateur avec 'Authenticatable'. –

Répondre

0

Si vous utilisez un fournisseur d'authentification utilisateur personnalisé, instanciez dans la méthode retrieveByCredentials() une nouvelle classe User et renvoyez-la. Comme si:

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

cela fonctionne bien uniquement lorsque vous utilisez le modèle. Mais dans ma situation, je dois faire fonctionner le code seulement quand le service de savon remplace le modèle. Avez-vous une solution pour cela? – kushalbhaktajoshi