0

ここに表示される 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');

あなたの助けと洞察をありがとう!

4

1 に答える 1

1

useコントローラーの定義内に (少なくともこのコンテキストでは) 句を見たことがありません。

上記の 3 つの句を配置してみてくださいclass。これらは、クラスで使用するために名前空間をインポートする必要があります。

use <class>;
use <class> as {a_class}
...

class <name> ... {
于 2013-06-23T06:55:50.997 に答える