【发布时间】: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->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