美文网首页
用户认证

用户认证

作者: 爱折腾的傻小子 | 来源:发表于2018-10-29 11:00 被阅读13次

Laravel的用户认证只需一行代码即可部署完成。

php artisan make:auth

然后,我们就可以访问指定的路由

http:://www.域名/register
http:://www.域名/login
等其他

我们参看一下 php artisan make:auth 代码执行时添加的 ...

    1. 添加了路由(我们能访问/login /register 等)
//> 在 routes/web.php 中添加如下代码
//> 这里注册了所有 用户认证需要路由
Auth::routes();
//> 用户登录成功跳转路由
Route::get('/home', 'HomeController@index');

我们参看 Auth::auth(); 添加的路由

/**
     * Register the typical authentication routes for an application.
     *
     * @return void
     */
    public function auth()
    {
        // Authentication Routes...
        //> 登录页面 GET 加载
        $this->get('login', 'Auth\LoginController@showLoginForm')->name('login');
        //> 登录数据提交路由  POST
        $this->post('login', 'Auth\LoginController@login');
        //> 登出数据清除路由
        $this->post('logout', 'Auth\LoginController@logout')->name('logout');

        // Registration Routes...
        //> 注册页面 GET 路由
        $this->get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
        //> 注册数据提交路由 POST
        $this->post('register', 'Auth\RegisterController@register');

        // Password Reset Routes...
        //> 下面是密码重置相关路由
        $this->get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm');
        $this->post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail');
        $this->get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm');
        $this->post('password/reset', 'Auth\ResetPasswordController@reset');
    }

auth()方法注册的路由都是Auth开始的,这是由于Route路由控制都被指定了App\Http\Controller\ 这里


[=========]

  • App\Http\Controllers\Auth\LoginController 控制器 处理登录相关逻辑
//> LoginController控制器支持一下属性
$this->maxAttempts = 3;  //> 最大登录失败次数
$this->decayMinutes = 1; //> 登录maxAttempts次失败等待指定分钟数
//> 源码参考 trait
    /**
     * Get the maximum number of attempts to allow.
     *
     * @return int
     */
    public function maxAttempts()
    {
        //> property_exists() 判断类或对象指定属性是否存在
        return property_exists($this, 'maxAttempts') ? $this->maxAttempts : 5;
    }

    /**
     * Get the number of minutes to throttle for.
     *
     * @return int
     */
    public function decayMinutes()
    {
        return property_exists($this, 'decayMinutes') ? $this->decayMinutes : 1;
    }
//> 判断当前用户登录是否同意用户标志 用户名+ip
    /**
     * Get the throttle key for the given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return string
     */
    protected function throttleKey(Request $request)
    {
        return Str::lower($request->input($this->username())).'|'.$request->ip();
    }
//> 判断当前用户登录是否超出次数 源码
    /**
     * Determine if the given key has been "accessed" too many times.
     *
     * @param  string  $key
     * @param  int  $maxAttempts
     * @param  float|int  $decayMinutes
     * @return bool
     */
    public function tooManyAttempts($key, $maxAttempts, $decayMinutes = 1)
    {
        //> 用户名+ip+:lockout 表示当前用户已锁住
        if ($this->cache->has($key.':lockout')) {
            return true;
        }
        //> $this->attempts($key)从缓存里取之前失败次数
        if ($this->attempts($key) >= $maxAttempts) {
            //> 超过最大登录次数,锁住登录
            $this->lockout($key, $decayMinutes);
            //> 清除 用户名+ip 为key的缓存数据
            $this->resetAttempts($key);
           
            return true;
        }

        return false;
    }

相关文章

  • Apache用户认证、域名跳转、Apache访问日志

    Apache用户认证 针对目录认证 用户认证 文件认证文件认证 域名跳转 域名跳转 Apache访问日志 Apac...

  • 使用Flask实现用户登陆认证的详细过程

    用户认证的原理 在了解使用Flask来实现用户认证之前,我们首先要明白用户认证的原理。假设现在我们要自己去实现用户...

  • Django-便捷的用户认证系统

    Django默认用户认证系统 Django自带用户认证系统 它处理用户账号、组、权限以及基于cookie的用户会话...

  • django中级 --- 用户认证

    说明 django通过提供User、auth方法实现用户登录认证,权限管理等功能 一:用户认证 用户登录,判断用户...

  • OAuth2 概念学习

    2020-6-1学习 认证(登录) 定义用户认证就是判断一个用户的身份是否合法的过程 身份认证方式用户名密码登录、...

  • Shiro权限管理笔记

    一.用户身份认证 身份认证,就是判断一个用户是否为合法用户的处理过程。最常用的简单身份认证方式是系统通过核对用户输...

  • 众签电子签章接入流程

    调用个人用户颁发数字证书接口实现个人用户认证(一个用户只需认证一次) 调用企业用户颁发数字证书实现企业认证(只需认...

  • 用户认证

    Laravel的用户认证只需一行代码即可部署完成。 然后,我们就可以访问指定的路由 我们参看一下 php arti...

  • 用户认证

    what? 用户认证是鉴别用户身份的过程,它通常使用标识符(用户名/有消息)和加密令牌(密码/存取令牌)来鉴别用户...

  • 用户认证

    前期准备 Laravel的权限配置文件位于 config/auth.php,Laravel的认证组件由“guard...

网友评论

      本文标题:用户认证

      本文链接:https://www.haomeiwen.com/subject/nukqvttx.html