1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace SocialiteProviders\Manager\OAuth1; |
4
|
|
|
|
5
|
|
|
use GuzzleHttp\Exception\BadResponseException; |
6
|
|
|
use League\OAuth1\Client\Credentials\TemporaryCredentials; |
7
|
|
|
use League\OAuth1\Client\Credentials\TokenCredentials; |
8
|
|
|
|
9
|
|
|
abstract class Server extends \League\OAuth1\Client\Server\Server |
10
|
|
|
{ |
11
|
|
|
/** |
12
|
|
|
* Retrieves token credentials by passing in the temporary credentials, |
13
|
|
|
* the temporary credentials identifier as passed back by the server |
14
|
|
|
* and finally the verifier code. |
15
|
|
|
* |
16
|
|
|
* @param TemporaryCredentials $temporaryCredentials |
17
|
|
|
* @param string $temporaryIdentifier |
18
|
|
|
* @param string $verifier |
19
|
|
|
* |
20
|
|
|
* @return TokenCredentials |
21
|
|
|
*/ |
22
|
|
|
public function getTokenCredentials(TemporaryCredentials $temporaryCredentials, $temporaryIdentifier, $verifier) |
23
|
|
|
{ |
24
|
|
|
if ($temporaryIdentifier !== $temporaryCredentials->getIdentifier()) { |
25
|
|
|
throw new \InvalidArgumentException( |
26
|
|
|
'Temporary identifier passed back by server does not match that of stored temporary credentials. |
27
|
|
|
Potential man-in-the-middle.' |
28
|
|
|
); |
29
|
|
|
} |
30
|
|
|
|
31
|
|
|
$uri = $this->urlTokenCredentials(); |
32
|
|
|
$bodyParameters = array('oauth_verifier' => $verifier); |
33
|
|
|
|
34
|
|
|
$client = $this->createHttpClient(); |
35
|
|
|
|
36
|
|
|
$headers = $this->getHeaders($temporaryCredentials, 'POST', $uri, $bodyParameters); |
37
|
|
|
|
38
|
|
|
try { |
39
|
|
|
$response = $client->post($uri, $headers, $bodyParameters)->send(); |
40
|
|
|
} catch (BadResponseException $e) { |
41
|
|
|
return $this->handleTokenCredentialsBadResponse($e); |
|
|
|
|
42
|
|
|
} |
43
|
|
|
|
44
|
|
|
return [ |
|
|
|
|
45
|
|
|
'tokenCredentials' => $this->createTokenCredentials($response->getBody()), |
46
|
|
|
'credentialsResponseBody' => $response->getBody(), |
47
|
|
|
]; |
48
|
|
|
} |
49
|
|
|
} |
50
|
|
|
|
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example: