laravel5.2.22 自带用户登录认证笔记

来源:互联网 发布:qq飞车针尖数据 编辑:程序博客网 时间:2024/06/05 08:04
1、建立表
php artisan migration
2、
  // 认证路由...
    Route::get('auth/login', 'Auth\AuthController@getLogin');
    Route::post('auth/login', 'Auth\AuthController@postLogin');
    Route::get('auth/logout', 'Auth\AuthController@getLogout');
// 注册路由...
    Route::get('auth/register', 'Auth\AuthController@getRegister');
    Route::post('auth/register', 'Auth\AuthController@postRegister');
    Route::get('auth/logout', 'Auth\AuthController@logout');

3、使用用户名登录
将此方法里的email改成name
public function loginUsername()
{
    return property_exists($this, 'username') ? $this->username : 'name';
}
4、view中获取用户名
@if (Auth::guest())
@else
{{ Auth::user()->name }}
@endif
5、控制器中获取用户名
$request->user()->name

6、中间件
所有route全部放在中间件中
Route::group(['middleware' => 'web'], function () {
}
7、
Route::auth()方法可以生成以下几个路由
//    Route::get('login', 'Auth\AuthController@showLoginForm');
//    Route::post('login', 'Auth\AuthController@login');
//    Route::get('logout', 'Auth\AuthController@logout');
//
//    // Registration Routes...
//    Route::get('register', 'Auth\AuthController@showRegistrationForm');
//    Route::post('register', 'Auth\AuthController@register');
//
//    // Password Reset Routes...
//    Route::get('password/reset/{token?}', 'Auth\PasswordController@showResetForm');
//    Route::post('password/email', 'Auth\PasswordController@sendResetLinkEmail');
//    Route::post('password/reset', 'Auth\PasswordController@reset');

8、app下面的User.php是用户表的模型
指定table
protected $table = 'users';
9.auth配置
<?php

return [

    'defaults' => [
        'guard' => 'web',
        'passwords' => 'users',
    ],

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'admin' => [
            'driver' => 'session',
            'provider' => 'admins',
        ],
        'api' => [
            'driver' => 'token',
            'provider' => 'users',
        ],
    ],

    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],
        'admins' => [
            'driver' => 'eloquent',
            'model' => App\Admin::class,
        ],
    ],

    'passwords' => [
        'users' => [
            'provider' => 'users',
            'email' => 'auth.emails.password',
            'table' => 'password_resets',
            'expire' => 60,
        ],
    ],

];
10、控制器验证用户是否登录
public function __construct()
{
    $this->middleware('auth');
}

1 0
原创粉丝点击