composer-update-patch
This commit is contained in:
@@ -4,6 +4,7 @@ namespace Laravel\Socialite\One;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use InvalidArgumentException;
|
||||
use League\OAuth1\Client\Credentials\TokenCredentials;
|
||||
use League\OAuth1\Client\Server\Server;
|
||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||
use Laravel\Socialite\Contracts\Provider as ProviderContract;
|
||||
@@ -74,6 +75,31 @@ abstract class AbstractProvider implements ProviderContract
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a Social User instance from a known access token and secret.
|
||||
*
|
||||
* @param string $token
|
||||
* @param string $secret
|
||||
* @return \Laravel\Socialite\One\User
|
||||
*/
|
||||
public function userFromTokenAndSecret($token, $secret)
|
||||
{
|
||||
$tokenCredentials = new TokenCredentials();
|
||||
|
||||
$tokenCredentials->setIdentifier($token);
|
||||
$tokenCredentials->setSecret($secret);
|
||||
|
||||
$user = $this->server->getUserDetails($tokenCredentials);
|
||||
|
||||
$instance = (new User)->setRaw($user->extra)
|
||||
->setToken($tokenCredentials->getIdentifier(), $tokenCredentials->getSecret());
|
||||
|
||||
return $instance->map([
|
||||
'id' => $user->uid, 'nickname' => $user->nickname,
|
||||
'name' => $user->name, 'email' => $user->email, 'avatar' => $user->imageUrl,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the token credentials for the request.
|
||||
*
|
||||
|
@@ -140,7 +140,7 @@ abstract class AbstractProvider implements ProviderContract
|
||||
$state = null;
|
||||
|
||||
if ($this->usesState()) {
|
||||
$this->request->session()->set('state', $state = Str::random(40));
|
||||
$this->request->session()->set('state', $state = $this->getState());
|
||||
}
|
||||
|
||||
return new RedirectResponse($this->getAuthUrl($state));
|
||||
@@ -168,7 +168,7 @@ abstract class AbstractProvider implements ProviderContract
|
||||
{
|
||||
$fields = [
|
||||
'client_id' => $this->clientId, 'redirect_uri' => $this->redirectUrl,
|
||||
'scope' => $this->formatScopes($this->scopes, $this->scopeSeparator),
|
||||
'scope' => $this->formatScopes($this->getScopes(), $this->scopeSeparator),
|
||||
'response_type' => 'code',
|
||||
];
|
||||
|
||||
@@ -234,10 +234,8 @@ abstract class AbstractProvider implements ProviderContract
|
||||
if ($this->isStateless()) {
|
||||
return false;
|
||||
}
|
||||
//dd($this->request->all());
|
||||
$state = $this->request->input('state');
|
||||
\Session::put('state', $state);
|
||||
//$state = $this->request->session()->pull('state');
|
||||
|
||||
$state = $this->request->session()->pull('state');
|
||||
|
||||
return ! (strlen($state) > 0 && $this->request->input('state') === $state);
|
||||
}
|
||||
@@ -392,6 +390,16 @@ abstract class AbstractProvider implements ProviderContract
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the string used for session state.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getState()
|
||||
{
|
||||
return Str::random(40);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the custom parameters of the request.
|
||||
*
|
||||
|
@@ -19,14 +19,14 @@ class FacebookProvider extends AbstractProvider implements ProviderInterface
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $version = 'v2.6';
|
||||
protected $version = 'v2.8';
|
||||
|
||||
/**
|
||||
* The user fields being requested.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $fields = ['name', 'email', 'gender', 'verified'];
|
||||
protected $fields = ['name', 'email', 'gender', 'verified', 'link'];
|
||||
|
||||
/**
|
||||
* The scopes being requested.
|
||||
@@ -116,6 +116,7 @@ class FacebookProvider extends AbstractProvider implements ProviderInterface
|
||||
'id' => $user['id'], 'nickname' => null, 'name' => isset($user['name']) ? $user['name'] : null,
|
||||
'email' => isset($user['email']) ? $user['email'] : null, 'avatar' => $avatarUrl.'?type=normal',
|
||||
'avatar_original' => $avatarUrl.'?width=1920',
|
||||
'profileUrl' => isset($user['link']) ? $user['link'] : null,
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -170,5 +171,7 @@ class FacebookProvider extends AbstractProvider implements ProviderInterface
|
||||
public function reRequest()
|
||||
{
|
||||
$this->reRequest = true;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
@@ -79,6 +79,7 @@ class GoogleProvider extends AbstractProvider implements ProviderInterface
|
||||
return (new User)->setRaw($user)->map([
|
||||
'id' => $user['id'], 'nickname' => Arr::get($user, 'nickname'), 'name' => $user['displayName'],
|
||||
'email' => $user['emails'][0]['value'], 'avatar' => Arr::get($user, 'image')['url'],
|
||||
'avatar_original' => preg_replace('/\?sz=([0-9]+)/', '', Arr::get($user, 'image')['url']),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
@@ -12,7 +12,7 @@ class LinkedInProvider extends AbstractProvider implements ProviderInterface
|
||||
* @var array
|
||||
*/
|
||||
protected $scopes = ['r_basicprofile', 'r_emailaddress'];
|
||||
|
||||
|
||||
/**
|
||||
* The separating character for the requested scopes.
|
||||
*
|
||||
|
Reference in New Issue
Block a user