ここに表示される Laravel 4 用に oauth2 認証システム (特に Facebook 用) をセットアップしようとしています: https://github.com/madewithlove/laravel-oauth2
これを制御するコントローラー Oauth2Controller.php があります。パッケージ内の必要なファイルをコントローラーに含めようとしています。そのリポジトリの例に従って、次を使用します。
use OAuth2\OAuth2;
use OAuth2\Token_Access;
use OAuth2\Exception as OAuth2_Exception;
ただし、ページを実行すると、これらの行でエラーがスローされます。言います:
Symfony \ Component \ Debug \ Exception \ FatalErrorException
syntax error, unexpected 'as' (T_AS), expecting ',' or ';' or '{'
これは 3 行目を直接参照しています: use OAuth2\Exception as OAuth2_Exception;
なぜこのエラーがスローされるのかわかりません。
これが私のコントローラーの完全なコードです:
<?php
class Oauth2Controller extends BaseController
{
use OAuth2\OAuth2;
use OAuth2\Token_Access;
use OAuth2\Exception as OAuth2_Exception;
public function getIndex($provider) {
$provider = OAuth2::provider($provider, array(
'id' => '**************',
'secret' => '******************',
));
if(! isset($_GET['code'])) {
return $provider->authorize();
}
else
{
// Howzit?
try
{
$params = $provider->access($_GET['code']);
$token = new Token_Access(array(
'access_token' => $params->access_token
));
$user = $provider->get_user_info($token);
// Here you should use this information to A) look for a user B) help a new user sign up with existing data.
// If you store it all in a cookie and redirect to a registration page this is crazy-simple.
echo "<pre>";
var_dump($user);
}
catch (OAuth2_Exception $e)
{
show_error('That didnt work: '.$e);
}
}
}
}
私のルートでは、ページに到達するために、次のものがあります。
Route::get('oauth/{provider}', 'Oauth2Controller@getIndex');
あなたの助けと洞察をありがとう!