【问题标题】:Don't working authentication in laravel 5.2不要在 laravel 5.2 中进行身份验证
【发布时间】:2016-01-12 16:59:05
【问题描述】:

不进行身份验证。我手动创建身份验证。
我的AdminController

class AdminController extends Controller
{

    public function signin() {
        return view('admin.signin');
    }

    public function index(Request $request) {

        dd(Auth::check());
        if (Auth::check())
            return view('admin.index.index', ['login' => Auth::user()->name]);
        else
            return redirect()->action('AdminController@signin');
    }

    public function login() {
        $data = Input::all();

        if (Auth::attempt(['name' => $data['login'], 'password' => $data['password']])) {
            return redirect()->intended('/admin');
        } else {
            return redirect()->intended('/admin/signin');
        }
    }

    public function logout() {
        if (Auth::logout() ) {
            return Redirect::to('/admin');
        }
    }
}  

我的routes.php 文件:

  //GET
  Route::get('/', 'IndexController@index');
  Route::get('/admin/signin', 'AdminController@signin');
  Route::get('/admin', 'AdminController@index');
  Route::get('/admin/logout', 'AdminController@logout');

  //POST
  Route::post('/admin/auth', 'AdminController@login');   

dd(Auth::check());返回false

我做错了什么?

【问题讨论】:

  • 手册上不是说dd()转储一个变量并结束脚本的执行吗?
  • 您的路由是否应用了“网络”中间件组?
  • @RiggsFolly 与 dd() 我只是检查返回值,没有 dd() 页面重定向到登录操作。并且身份验证不起作用。
  • 不,我的 web 中间件不包含路由,因为这样会导致 TokenMismatchException 出现错误

标签: php authentication laravel-5 laravel-routing laravel-5.2


【解决方案1】:

在 Laravel 5.2 中,您需要使用 web 中间件定义路由以使会话正常工作,因此您的 routes.php 文件应如下所示:

Route::group(['middleware' => ['web']], function () {
  //GET
  Route::get('/', 'IndexController@index');
  Route::get('/admin/signin', 'AdminController@signin');
  Route::get('/admin', 'AdminController@index');
  Route::get('/admin/logout', 'AdminController@logout');

  //POST
  Route::post('/admin/auth', 'AdminController@login');
});

【讨论】:

  • 我按照你说的做了,但是输出错误:TokenMismatchException in VerifyCsrfToken.php line 67:
  • 什么时候出现这个错误。就在您打开带有表单的新页面并尝试登录时?如果您长时间打开它,这是正常的,您会收到此错误
  • 感谢您的回答帮助了我,但现在遇到Auth::logout() 的另一个问题,此方法返回null
猜你喜欢
  • 2016-04-23
  • 1970-01-01
  • 2016-08-05
  • 1970-01-01
  • 2017-07-04
  • 2018-10-12
  • 2017-02-26
  • 2018-11-22
  • 2016-07-09
相关资源
最近更新 更多