laravel 登录重写
权限控制是几乎每套成熟系统不可缺少的一部分,我们使用的权限控制方法是rbac,我将在这个系列的文章一步步完成一个比较复杂的rbac权限控制。
rbac权限控制是一个非常成熟的权限控制系统,其原理是给每个用户一个或多个角色 而每个角色对系统相应模块有访问权限,具体理论知识不多介绍。在我完成这个权限控制系统中,我将普通用户和管理员用户分开在数据库中存储,我们先完成普通用户的登录,这一部分相对于管理员用户会比较简单,同时也让大家理解下登录的流程。
未登录用户跳转到登录页面
当我们访问某些一定要登录后才能使用的功能时 我们往往会有一个功能就是 如果没有登录的用户,就会直接跳转到登录功能 在laravel已经提供的代码中我们可以非常轻松完成这个功能
class HomeController extends Controller {
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
echo url('/home');
echo '这是首页';
}
}
我们在随便一个需要进行登录才能使用的控制器中使调用auth这个控制器就可以了,这个控制器会去检查session中是否有登录信息来进行判断是否有没有登录 那么这个'auth'中间件在哪呢?
laravel中所有中间件都在app/Http/Kernel中注册
protected $routeMiddleware = [
'auth' => 'App\Http\Middleware\Authenticate',
'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
'admin_auth' => 'App\Http\Middleware\AdminPermissionCheck',
];
这个数组中key是中间件的别名 value是中间件的路径 由此我们可以找到别名为auth的中间件