oriceon / oauth-5-laravel安装控制器请求错误

时间:2015-12-01 20:59:13

标签: php laravel oauth

这是我第一次在项目中实施OAuth。我在github上找到了laravel-5 oriceon / oauth-5-laravel的演练。我正确地遵循了所有步骤。但是,当我进入控制器功能时,我收到一条错误消息:

Call to undefined method Illuminate\Support\Facades\Request::get()

这是我的控制器功能:

    public function loginWithFacebook(Request $request)
{
    // get data from request
    $code = $request->get('code');

    // get fb service
    $fb = \OAuth::consumer('Facebook');

    // check if code is valid

    // if code is provided get user data and sign in
    if ( ! is_null($code))
    {
        // This was a callback request from facebook, get the token
        $token = $fb->requestAccessToken($code);

        // Send a request with it
        $result = json_decode($fb->request('/me'), true);

        $message = 'Your unique facebook user id is: ' . $result['id'] . ' and your name is ' . $result['name'];
        echo $message. "<br/>";

        //Var_dump
        //display whole array.
        dd($result);
    }
    // if not ask for permission first
    else
    {
        // get fb authorization
        $url = $fb->getAuthorizationUri();

        // return to facebook login url
        return redirect((string)$url);
    }
}

在应用程序中,您可以看到我确实添加了正确的提供程序和别名:

'OAuth' => Artdarek\OAuth\Facade\OAuth::class,
Artdarek\OAuth\OAuthServiceProvider::class,

在我看来,我调用导致正确控制器功能的路由,并且我一直到达此错误。怎么会这样呢?该功能是否应该向提供商或其他人打电话?感谢您查看此Stack!

1 个答案:

答案 0 :(得分:1)

首先,我希望你的观点不是在向后调用一条路线。路由立即用于确定控制器,然后用于确定和响应正确的视图。

......除此之外,Request是Laravel门面的名称。这就是为什么错误消息表明它在Illuminate \ Support \ Facades \ Request类中寻找get()方法的原因。您希望命名您正在使用的Request类,以便它能够使用正确的get()方法。根据您的版本,我使用控制器文件顶部的use Illuminate\Http\Request;执行此操作(紧接在控制器的命名空间声明之后)。