<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
coderello / laravel-passport-social-grant example snippets
namespace App\Resolvers;
use Coderello\SocialGrant\Resolvers\SocialUserResolverInterface;
use Illuminate\Contracts\Auth\Authenticatable;
use Laravel\Socialite\Facades\Socialite;
use Laravel\Socialite\Two\User as ProviderUser;
class SocialUserResolver implements SocialUserResolverInterface
{
/**
* Resolve user by provider credentials.
*/
public function resolveUserByProviderCredentials(string $provider, string $accessToken): ?Authenticatable
{
// Return the user that corresponds to provided credentials.
// If the credentials are invalid, then return NULL.
$providerUser = Socialite::driver($provider)->userFromToken($accessToken);
return $this->findOrCreateUser($provider, $providerUser);;
}
protected function findOrCreateUser(string $provider, ProviderUser $providerUser): ?Authenticatable
{
// todo your logic here
// $email = $providerUser->getEmail();
}
}
namespace App\Providers;
use App\Resolvers\SocialUserResolver;
use Coderello\SocialGrant\Resolvers\SocialUserResolverInterface;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* All the container bindings that should be registered.
*/
public $bindings = [
SocialUserResolverInterface::class => SocialUserResolver::class,
];
}