0

Laravel Socialite 5.0 を使用しています。

<?php

use Illuminate\Http\Request;

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

$request->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'));
    }

}
4

1 に答える 1

0

問題はリターン URL ルートにありました。アプリから間違ったルートに戻っていました。

于 2015-09-12T20:20:36.533 に答える