$this->registerPolicies();
Auth::viaRequest('socialitegoogle', function (Request $request) {
- dd($request);
- $socialiteUser = Socialite::driver('google')->user();
- if ($socialiteUser) {
- $userClass = config('auth.providers.users.model');
- $instance = new $userClass();
- $instance->id = $socialiteUser->getId();
- $instance->email = $socialiteUser->getEmail();
- }
+ $user = User::fromProvider('google');
+ dd($user);
});
}
}
\ No newline at end of file
public function redirect()
{
$provider = request()->provider;
- if (in_array($provider, $this->providers)) {
+ if (in_array($provider, $this->providers, true)) {
return Socialite::driver($provider)->redirect();
}
abort(403);
public function callback()
{
$provider = request()->provider;
- if (in_array($provider, $this->providers)) {
- $socialiteUser = Socialite::driver('google')->user();
- if ($socialiteUser) {
- $userClass = config('auth.providers.users.model');
- /** @var User $instance */
- $instance = new $userClass();
- $instance->setId($socialiteUser->getId());
- $instance->setEmail($socialiteUser->getEmail());
- $instance->setAvatar($socialiteUser->getAvatar());
- $instance->setName($socialiteUser->getName());
- $instance->setNickname($socialiteUser->getNickname());
- dd($instance);
- Auth::setUser($instance);
- dd(auth()->user());
- }
+ if (in_array($provider, $this->providers, true)) {
+ $user = User::fromProvider($provider);
+ Auth::setUser($user);
+ dd('1', auth()->user());
}
}
}
\ No newline at end of file
namespace Cubist\Socialite;
use Illuminate\Contracts\Auth\Authenticatable;
+use Laravel\Socialite\Facades\Socialite;
use Mpyw\NullAuth\NullAuthenticatable;
class User implements Authenticatable
{
$this->email = $email;
}
+
+ public static function fromProvider($provider)
+ {
+ $socialiteUser = Socialite::driver($provider)->user();
+ if ($socialiteUser) {
+ $userClass = config('auth.providers.users.model');
+ /** @var User $instance */
+ $instance = new $userClass();
+ $instance->setId($socialiteUser->getId());
+ $instance->setEmail($socialiteUser->getEmail());
+ $instance->setAvatar($socialiteUser->getAvatar());
+ $instance->setName($socialiteUser->getName());
+ $instance->setNickname($socialiteUser->getNickname());
+ return $instance;
+
+ }
+ return null;
+ }
}
\ No newline at end of file