Со вчерашнего дня я занят API-интерфейсом Twitch, работает простая аутентификация с перенаправлением uri:
http://localhost:8000/redirect
Теперь я изменил URI перенаправления на:
http://localhost:8000/connect/twitch
И это больше не работает.
Я изменил URI в панели инструментов приложения twitch и в запросах, но я все еще получаю «Redirect_Mismatch».
Что я делаю неправильно?
Модель Twitch:
class Twitch{
var $client;
var $oauth_token;
public function __construct($token = null)
{
$this->client = new GuzzleHttp\Client();
if($token != null) $this->setOAuthToken($token);
}
public function retrieveOAuthToken($code)
{
$res = $this->client->post('https://api.twitch.tv/kraken/oauth2/token', [
'body' => [
'client_id' => Config::get('twitch.client_id'),
'client_secret' => Config::get('twitch.client_secret'),
'grant_type' => 'authorization_code',
'redirect_uri' => Config::get('twitch.redirect_uri'),
'code' => $code
],
'verify' => false
]);
$result = json_decode($res->getBody());
$this->oauth_token = $result->access_token;
}
}
Файл конфигурации Laravel Twitch:
return array(
'client_id' => 'REMOVED',
'client_secret' => 'REMOVED',
'redirect_uri' => 'http://localhost:8000/twitch',
);
контроллер:
class ConnectController extends \BaseController {
public function twitch()
{
$twitch = new Twitch();
$twitch->retrieveOAuthToken(Input::get('code'));
}
}
Настройки приложения Twitch:
Вам необходимо обновить конфигурацию laravel:
return array(
'client_id' => 'REMOVED',
'client_secret' => 'REMOVED',
'redirect_uri' => 'http://localhost:8000/connect/twitch',
);
И вы дергаете URI перенаправления с помощью HTTP: // локальный: 8000 / подключения / подергивание.
Если один из двух URL (настройки Laravel или Twitch) отличается от другого, у вас будет Redirect_Mismatch
Вам нужно инициализировать Twitch JS SDK на HTTP: // локальный: 8000 / подергивание также. Я не уверен насчет Laravel и т. Д., Но в этом случае попробуйте также добавить класс Twitch на эту страницу, если именно так инициализируется Twitch.