php - Laravel 身份验证不显示 session 消息

标签 php laravel session authentication laravel-5.2

我正在尝试在 laravel 5.2 中验证用户类型。路线如下:

Route::group(['middleware' => ['web']], function(){
    Route::auth();
    Route::get('/user/department/login', ['as' => 'department_login', 'uses' => 'DepartmentUserAuth\AuthController@showLoginForm']);
    Route::post('/user/department/login','DepartmentUserAuth\AuthController@deptLoginPost');

}); 

AuthController.php

public function deptLoginPost(Request $request)
{

    $this->validate($request, [
        'username'      => 'required',
        'password'      => 'required',
    ]);
    if (auth()->guard('department_user')->attempt(['username' => $request->input('username'), 'password' => $request->input('password')]))
    {
        $user = auth()->guard('department_user')->user();
        dd($user);
    }else{
       return redirect('/user/department/login')->with('message', 'Invalid credentials');
    }
}

login.blade.php 是:

@if(Session::has('message'))
<div class="row">
   <div class="col-lg-12">
         <div class="alert {{ Session::get('alert-class', 'alert-info') }}">
               <button type="button" class="close" data-dismiss="alert">×</button>
               {!! Session::get('message') !!}
         </div>
      </div>
</div>
@endif

{{ dump(session()->all()) }}

但是 Session::has('message') 是空的,dump 显示如下:

array:3 [▼
  "_token" => "BvQ630KrUl78Ngb8d3cst6pAIqenra3ohbYbLzAP"
  "_previous" => array:1 [▼
    "url" => "http://localhost:8080/material/public/user/department/login"
  ]
  "flash" => array:2 [▼
    "old" => []
    "new" => []
  ]
]

如何在我的 login.blade.php 中显示所有错误消息(如在默认 auth Controller 中)?

最佳答案

尝试直接在请求的消息上设置消息:

$request->session()->flash('消息', '无效凭证');

例子:

if (auth()->guard('department_user')->attempt(['username' => $request->input('username'), 'password' => $request->input('password')]))
{
    $user = auth()->guard('department_user')->user();
    dd($user);
}else{
    $request->session()->flash('message', 'Invalid credentials');
    return redirect()->back();
}

如果仍然没有帮助,请查看您的路由并查看您的中间件是否已正确分配。

// either as a string
Route::group(['middleware' => 'web']...
// or as a array element
Route::group(['middlewareGroups' => ['web']]...

关于php - Laravel 身份验证不显示 session 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46722442/

相关文章:

java - java/javascript 中浏览器选项卡的登录控件

java作为前端,php作为后端

sql - 如何在 Oracle 9i 上找到高水位线(对于 session )

java.lang.ClassNotFoundException : int on reading serialized session data 异常

php - 在 Laravel 迁移中使列不可为空

laravel - 数据库[]未配置Laravel 5

laravel - 捕捉 Eloquent 错误

php - cakephp 更新字段

javascript - 单击警报确定后如何留在同一位置?

php - 用数组多次替换(可能是 preg_replace)相同的字符串