zoukankan      html  css  js  c++  java
  • Laravel开发:多用户登录验证(1)

    之前实现了一次,后来代码忘记放哪了,所以有跳了一次坑。

    先贴上Laravel自带的验证代码:

    路由:routes/web.php

    // 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');
    
    // After Login...
    Route::get('/home', 'HomeController@index')->name('home');
    

    中间件:config/auth.php(默认的用户认证配置文件auth.php,配置如下)

    <?php
    return [
        'defaults' => [
            'guard' => 'web',
            'passwords' => 'users',
        ],
        'guards' => [
            'web' => [
                'driver' => 'session',
                'provider' => 'users',
            ],
            'api' => [
                'driver' => 'token',
                'provider' => 'users',
            ],
        ],
        'providers' => [
            'users' => [
                'driver' => 'eloquent',
                'model' => AppUser::class,
            ],
        ],
        'passwords' => [
            'users' => [
                'provider' => 'users',
                'email' => 'auth.emails.password',
                'table' => 'password_resets',
               'expire' => 60,
            ],
        ],
    ];
    

     控制器:

    app/Http/Controllers/Auth/RegisterController.php

    app/Http/Controllers/Auth/LoginController.php

    app/Http/Controllers/Home/HomeController.php

    等等...

    Table表: users

    CREATE TABLE `mgshop_users` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
      `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
      `password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
      `remember_token` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `created_at` timestamp NULL DEFAULT NULL,
      `updated_at` timestamp NULL DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    

    Model:app/User.php

    namespace App;
    
    use IlluminateAuthAuthenticatable;
    use IlluminateDatabaseEloquentModel;
    use IlluminateContractsAuthAuthenticatable as AuthenticatableContracts;
    
    class User extends Model implements AuthenticatableContracts
    {
        use Authenticatable;
        
        protected $table = 'users';//'user';//设置表名
        protected $primaryKey = 'id';//'UserID';//设置主键
        public $timestamps = false;
        protected $fillable = ['name','email','password'];//开启白名单字段
    }
    

    该验证仅需执行下面命令即可生成对应数据库表及代码

    php artisan make:auth
    

    参考Laravel 5.3 多用户表登录实现:http://laravelacademy.org/post/5925.html

  • 相关阅读:
    golang中将json转成go
    软件升级
    golang 各类型转换
    golang 基础知识6
    golang 基础知识5
    bash resource
    toy
    links
    android abd remove
    YCM
  • 原文地址:https://www.cnblogs.com/cxscode/p/7446375.html
Copyright © 2011-2022 走看看