【问题标题】:Laravel Socialite Request Returns NullLaravel 社交名流请求返回 Null
【发布时间】:2018-11-11 17:56:53
【问题描述】:

我正在使用 Laravel Socialite 5.0。

<?php

use Illuminate\Http\Request;

public function login(AuthenticateUser $authenticateUser, Request $request){
    return $authenticateUser->execute($request->has('code'));
}

$request-&gt;has('code') 总是返回 null。这是为什么? 提供我的 AuthenticateUser 类,我认为这是一个重定向/请求问题。

<?php 

namespace App;

use Laravel\Socialite\Contracts\Factory as Socialite;
use Illuminate\Contracts\Auth\Guard as Guard;
use App\Repositories\UserRepository as UserRepository;
use Log;

class AuthenticateUser {

    private $users;
    private $socialite;
    private $auth;

    public function __construct (UserRepository $users, Socialite $socialite, Guard $auth) {
        $this->users = $users;
        $this->socialite = $socialite;
        $this->auth = $auth;
    }

    public function execute ($hasCode) {
        if( ! $hasCode){
            Log::info('1');
            return $this->getAuthorizationFirst();
        }
        Log::info('2');
        $user = $this->socialite->driver('github')->user();
    }

    public function getAuthorizationFirst(){
        return $this->socialite->driver('github')->redirect();
    }

}

添加 AuthController 类供参考:

class AuthController extends Controller {

    /*
    |--------------------------------------------------------------------------
    | Registration & Login Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles the registration of new users, as well as the
    | authentication of existing users. By default, this controller uses
    | a simple trait to add these behaviors. Why don't you explore it?
    |
    */

    use AuthenticatesAndRegistersUsers;

    /**
     * Create a new authentication controller instance.
     *
     * @param  \Illuminate\Contracts\Auth\Guard  $auth
     * @param  \Illuminate\Contracts\Auth\Registrar  $registrar
     * @return void
     */
    public function __construct(Guard $auth, Registrar $registrar)
    {
        $this->auth = $auth;
        $this->registrar = $registrar;

        $this->middleware('guest', ['except' => 'getLogout']);
    }

    public function login(AuthenticateUser $authenticateUser, Request $request){
        Log::info('_'.$request->has('code').'_');
        return $authenticateUser->execute($request->has('code'));
    }

}

【问题讨论】:

  • 我正在关注 laracast 教程:laracasts.com/series/whats-new-in-laravel-5/episodes/9 但就是无法通过这个 has('code')。
  • 触发函数的表单是什么样子的?
  • 它不是表格。我只是触发路线。 登录Github
  • 您可以发布您的身份验证用户类吗?
  • 您是否在 services.php 文件中提供了正确的令牌?

标签: php laravel laravel-5 laravel-socialite laravel-request


【解决方案1】:

问题出在返回 url 路由上! 我从应用程序返回到错误的路线。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-20
    • 1970-01-01
    • 2021-02-10
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-11
    相关资源
    最近更新 更多