Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过ajax实现Laravel身份验证_Php_Laravel_Laravel 5_Laravel 5.1 - Fatal编程技术网

Php 通过ajax实现Laravel身份验证

Php 通过ajax实现Laravel身份验证,php,laravel,laravel-5,laravel-5.1,Php,Laravel,Laravel 5,Laravel 5.1,我编写用于管理ajax请求的控制器。我编写了一个构造方法,用于检查用户是否登录,如果阻止工作正常,但总是返回用户。设置查看并返回构造不工作 控制器: <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; use Auth; class AjaxController extends Con

我编写用于管理ajax请求的控制器。我编写了一个构造方法,用于检查用户是否登录
,如果
阻止工作正常,但总是返回
用户。设置
查看并返回构造不工作

控制器:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Auth;

class AjaxController extends Controller {

    public function __construct() {
        if (Auth::check() == FALSE) {
            return view('errors.notLogin');
        }
    }

    public function settings() {
        return view('user.setting');
    }

}
js:

您应该使用而不是重新实现该功能

public function __construct()
{
    $this->middleware('auth');
}
然后在
auth
中,您可以为ajax和常规http请求添加这两种情况-

public function handle($request, Closure $next)
{

    if ($this->auth->guest())
    {
        if ($request->ajax())
        {
            return view('errors.notLogin');
        }
        else
        {
            return redirect()->guest('auth/login');
        }
    }

    return $next($request);
}
您应该使用而不是重新实现该功能

public function __construct()
{
    $this->middleware('auth');
}
然后在
auth
中,您可以为ajax和常规http请求添加这两种情况-

public function handle($request, Closure $next)
{

    if ($this->auth->guest())
    {
        if ($request->ajax())
        {
            return view('errors.notLogin');
        }
        else
        {
            return redirect()->guest('auth/login');
        }
    }

    return $next($request);
}

这看起来像是中间件的工作

您不应该在AjaxController的构造函数中执行任何操作,而是应该为要保护的路由注册中间件:

Route::post('ajax/settings', [
    'uses' => 'AjaxController@settings', 
    'middleware' => 'auth'
]);
由于您可能需要许多Ajax函数,因此可以使用相同的中间件和“Ajax”前缀将它们分组:

Route::group(['prefix' => 'ajax', 'middleware' => 'auth'], function () {
    Route::post('settings', 'AjaxController@settings');
    //Define more routes here...
});
“auth”是Laravel附带的预设中间件之一,您可以在App\Http\middleware\Authenticate找到它,并根据需要对其进行修改,或者注册您自己的“Ajax”中间件。在任何一种情况下,句柄函数都类似于:

public function handle($request, Closure $next)
{
    if ($this->auth->guest()) {
        return view('errors.notLogin');
    }

    return $next($request);
}

这看起来像是中间件的工作

您不应该在AjaxController的构造函数中执行任何操作,而是应该为要保护的路由注册中间件:

Route::post('ajax/settings', [
    'uses' => 'AjaxController@settings', 
    'middleware' => 'auth'
]);
由于您可能需要许多Ajax函数,因此可以使用相同的中间件和“Ajax”前缀将它们分组:

Route::group(['prefix' => 'ajax', 'middleware' => 'auth'], function () {
    Route::post('settings', 'AjaxController@settings');
    //Define more routes here...
});
“auth”是Laravel附带的预设中间件之一,您可以在App\Http\middleware\Authenticate找到它,并根据需要对其进行修改,或者注册您自己的“Ajax”中间件。在任何一种情况下,句柄函数都类似于:

public function handle($request, Closure $next)
{
    if ($this->auth->guest()) {
        return view('errors.notLogin');
    }

    return $next($request);
}
你为什么不使用

您的构造函数应该是:

 public function __construct() {
     $this->middleware('auth');
 }
您还可以在routes.php中指定中间件在路由上运行:

Route::group(['middleware' => 'auth'], function () {
    Route::post('ajax/settings', 'AjaxController@settings');
}
你为什么不使用

您的构造函数应该是:

 public function __construct() {
     $this->middleware('auth');
 }
您还可以在routes.php中指定中间件在路由上运行:

Route::group(['middleware' => 'auth'], function () {
    Route::post('ajax/settings', 'AjaxController@settings');
}