zoukankan      html  css  js  c++  java
  • laravel学习之路1:认证相关

    Auth::check() 是判断用户是否登录的方法,如果使用的默认用户系统,那这样使用没问题。
    但是使用两组用户的话,如何使用各组用户的功能呢? Auth::guard('users')->check() 就是用来判断前台用户是否登录,而 Auth::guard('admins')->check() 就是用来判断后台用户是否登录的。
    默认的User model扩展自 IlluminateFoundationAuthUser
    class User extends Model implements
    AuthenticatableContract,
    AuthorizableContract,
    CanResetPasswordContract
    {
    use Authenticatable, Authorizable, CanResetPassword;
    }
    use的trait实现了AuthorizableContract这些接口,所以不用自己写代码,就实现了接口。
    middleware('guest:client')
    应该是
    通过冒号 : 来隔开中间件与参数
    其实是
    'guest' => AppHttpMiddlewareRedirectIfAuthenticated::class,
    看其定义发现有个参数$guard, 应该传的是我们定义的guard
    $this->middleware('guest')->except('logout');
    其中这个except表示logout这个方法将不会受到这个中间件的影响 logout通常是登出方法
    今天学习了多用户表登录:

    PHP artisan make:auth,经常好奇这段代码到底干了什么,现在就来扒一扒。
    Auth Facades里面有
    public static function routes()
    {
    static::$app->make('router')->auth();
    }
    然后看IlluminateRoutingRouter.php
    public function auth()
    {
    // Authentication Routes...
    $this->get('login', 'AuthLoginController@showLoginForm')->name('login');
    $this->post('login', 'AuthLoginController@login');
    $this->post('logout', 'AuthLoginController@logout')->name('logout');
    // Registration Routes...
    $this->get('register', 'AuthRegisterController@showRegistrationForm')->name('register');
    $this->post('register', 'AuthRegisterController@register');
    // Password Reset Routes...
    $this->get('password/reset', 'AuthForgotPasswordController@showLinkRequestForm')->name('password.request');
    $this->post('password/email', 'AuthForgotPasswordController@sendResetLinkEmail')->name('password.email');
    $this->get('password/reset/{token}', 'AuthResetPasswordController@showResetForm')->name('password.reset');
    $this->post('password/reset', 'AuthResetPasswordController@reset');
    }
    protected function guard()
    {
    return Auth::guard();
    }
    复制 layouts 下面的 app.blade.php,改名为 admin.blade.php 并对该文件做出修改
    Auth::guest() 改为 Auth::guard('admin')->guest()
    Auth::user()->name ->Auth::guard('client')->user()->name
    假设你的密码为123456,那么你保存在数据库中的值就是
    password_hash('123456','PASSWORD_BCRYPT')
  • 相关阅读:
    python IDLE 如何实现清屏
    协同过滤算法(天池竞赛试题)
    二次排序
    异常类面试题
    异常类
    2020年Java程序员应该学习的10大技术
    java-servlet-EL表达式和java标签
    java-servlet过滤器和监听
    java-Servlet-cookie and session
    java-servlet-转发AND路径
  • 原文地址:https://www.cnblogs.com/elesos/p/7338006.html
Copyright © 2011-2022 走看看