Ich habe ein Problem mit Laravel Persönlichkeit des öffentlichen Lebens mit, hier ist der Code:Laravel Socialite funktioniert nicht?
class SocialAuthController extends Controller
{
public function redirect($provider) {
return Socialite::driver($provider)->redirect();
}
public function callback(SocialAccountService $service, $provider) {
$user = $service->createOrGetUser(Socialite::driver($provider));
auth()->login($user, true);
return redirect()->to('/');
}
}
SocialAccountService:
public function createOrGetUser(Provider $provider)
{
$providerUser = $provider->user();
$providerName = class_basename($provider);
$account = SocialAccount::whereProvider($providerName)
->whereProviderUserId($providerUser->getId())
->first();
if ($account) {
return $account->user;
}else{
$account = new SocialAccount([
'provider_user_id' => $providerUser->getId(),
'provider' => $providerName
]);
$user = User::whereEmail($providerUser->getEmail())->first();
if (!$user) {
$user = User::create([
'email' => $providerUser->getEmail(),
'name' => $providerUser->getName(),
'avatar' => $providerUser->getAvatar(),
]);
}
$account->user()->associate($user);
$account->save();
return $user;
}
}
Jetzt das Problem, das ich bekommen habe ist:
FatalThrowableError Type error: Argument 1 passed to Illuminate\Auth\SessionGuard::login() must implement interface Illuminate\Contracts\Auth\Authenticatable, null given, called in /var/www/liveandnow/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php on line 294
Könnte jemand erklären, Was mache ich falsch? Weil ich alle Probleme nicht sehen hier mit meinem Code
Fehler
(1/1) InvalidStateException
in AbstractProvider.php (line 209)
at AbstractProvider->user()
in SocialAccountService.php (line 11)
at SocialAccountService->createOrGetUser(object(GoogleProvider))
in SocialAuthController.php (line 18)
at SocialAuthController->callback(object(SocialAccountService), 'google')
at call_user_func_array(array(object(SocialAuthController), 'callback'), array(object(SocialAccountService), 'provider' => 'google'))
in Controller.php (line 55)
at Controller->callAction('callback', array(object(SocialAccountService), 'provider' => 'google'))
in ControllerDispatcher.php (line 44)
at ControllerDispatcher->dispatch(object(Route), object(SocialAuthController), 'callback')
in Route.php (line 203)
at Route->runController()
in Route.php (line 160)
at Route->run()
in Router.php (line 574)
at Router->Illuminate\Routing\{closure}(object(Request))
in Pipeline.php (line 30)
at Pipeline->Illuminate\Routing\{closure}(object(Request))
in SubstituteBindings.php (line 41)
at SubstituteBindings->handle(object(Request), object(Closure))
in Pipeline.php (line 148)
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
in Pipeline.php (line 53)
at Pipeline->Illuminate\Routing\{closure}(object(Request))
in VerifyCsrfToken.php (line 65)
at VerifyCsrfToken->handle(object(Request), object(Closure))
in Pipeline.php (line 148)
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
in Pipeline.php (line 53)
at Pipeline->Illuminate\Routing\{closure}(object(Request))
in ShareErrorsFromSession.php (line 49)
at ShareErrorsFromSession->handle(object(Request), object(Closure))
in Pipeline.php (line 148)
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
in Pipeline.php (line 53)
at Pipeline->Illuminate\Routing\{closure}(object(Request))
in StartSession.php (line 64)
at StartSession->handle(object(Request), object(Closure))
in Pipeline.php (line 148)
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
in Pipeline.php (line 53)
at Pipeline->Illuminate\Routing\{closure}(object(Request))
in AddQueuedCookiesToResponse.php (line 37)
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure))
in Pipeline.php (line 148)
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
in Pipeline.php (line 53)
at Pipeline->Illuminate\Routing\{closure}(object(Request))
in EncryptCookies.php (line 59)
at EncryptCookies->handle(object(Request), object(Closure))
in Pipeline.php (line 148)
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
in Pipeline.php (line 53)
at Pipeline->Illuminate\Routing\{closure}(object(Request))
in Pipeline.php (line 102)
at Pipeline->then(object(Closure))
in Router.php (line 576)
at Router->runRouteWithinStack(object(Route), object(Request))
in Router.php (line 535)
at Router->dispatchToRoute(object(Request))
in Router.php (line 513)
at Router->dispatch(object(Request))
in Kernel.php (line 176)
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
in Pipeline.php (line 30)
at Pipeline->Illuminate\Routing\{closure}(object(Request))
in TransformsRequest.php (line 30)
at TransformsRequest->handle(object(Request), object(Closure))
in Pipeline.php (line 148)
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
in Pipeline.php (line 53)
at Pipeline->Illuminate\Routing\{closure}(object(Request))
in TransformsRequest.php (line 30)
at TransformsRequest->handle(object(Request), object(Closure))
in Pipeline.php (line 148)
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
in Pipeline.php (line 53)
at Pipeline->Illuminate\Routing\{closure}(object(Request))
in ValidatePostSize.php (line 27)
at ValidatePostSize->handle(object(Request), object(Closure))
in Pipeline.php (line 148)
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
in Pipeline.php (line 53)
at Pipeline->Illuminate\Routing\{closure}(object(Request))
in CheckForMaintenanceMode.php (line 46)
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
in Pipeline.php (line 148)
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
in Pipeline.php (line 53)
at Pipeline->Illuminate\Routing\{closure}(object(Request))
in Pipeline.php (line 102)
at Pipeline->then(object(Closure))
in Kernel.php (line 151)
at Kernel->sendRequestThroughRouter(object(Request))
in Kernel.php (line 116)
at Kernel->handle(object(Request))
in index.php (line 53)
aber mein Code ist so ziemlich genau das gleiche, es funktioniert vor und es blieb plötzlich –
dann die Frage der Arbeit mit den sozialen Service-Provider sein könnte, die Sie verwenden? Welchen benutzen Sie? In Callback-Funktion dd (Socialite :: Treiber ($ Provider) -> Benutzer()) und zeigen Sie mir die Ausgabe. –
ich so etwas wie tihs: (1/1) InvalidStateException in AbstractProvider.php (Linie 209) bei AbstractProvider-> Benutzer() in SocialAccountService.php (Linie 11) bei SocialAccountService-> createOrGetUser (Objekt (GoogleProvider)) in SocialAuthController.php (Zeile 18) bei SocialAuthController-> Rückruf (Objekt (SocialAccountService), "google") –