Zam*_*man 5 authentication middleware laravel laravel-middleware
我使用过Laravel Authentication(快速入门).但我需要检查用户的状态(已批准/待定).如果未获批准,则会在登录页面中显示错误.我需要知道我必须在哪个文件中进行更改以及更改内容.目前我正在研究Laravel 5.3.
Cam*_*jas 12
您可以创建Laravel Middleware检查链接以获取其他信息
php artisan make:middleware CheckStatus
Run Code Online (Sandbox Code Playgroud)
修改你的中间件得到
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class CheckStatus
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$response = $next($request);
//If the status is not approved redirect to login
if(Auth::check() && Auth::user()->status_field != 'approved'){
Auth::logout();
return redirect('/login')->with('erro_login', 'Your error text');
}
return $response;
}
}
Run Code Online (Sandbox Code Playgroud)
然后将您的中间件添加到您的Kernel.php中
'checkstatus' => \App\Http\Middleware\CheckStatus::class,
Run Code Online (Sandbox Code Playgroud)
最后将中间件添加到您的路线中
Route::post('/login', [
'uses' => 'Auth\AuthController@login',
'middleware' => 'checkstatus',
]);
Run Code Online (Sandbox Code Playgroud)
我希望它有所帮助
小智 5
我为此找到了一个简单的解决方案。Artisan create App\Http\Controllers\Auth\LoginController,在这个默认控制器中,如果您有一些登录条件,只需添加此代码,例如我有一个字段state,您可能有status, email_status或其他。
// Custom code for Auth process
protected function credentials( Request $request )
{
$credentials = $request->only($this->username(), 'password');
$credentials['state'] = 1;
return $credentials;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8538 次 |
| 最近记录: |