cba璧涚▼杈藉畞 :Laravel5.1 框架登錄和注冊實現方法詳解

cba广东队赛程 www.axwwg.com  更新時間:2020-01-24 14:00:20   作者:佚名   我要評論(0)

本文實例講述了Laravel5.1 框架登錄和注冊實現方法。分享給大家供大家參考,具體如下:
關于登錄和注冊 Laravel自帶了一套組件實現了這一功能,我們只需要實現簡單的

本文實例講述了Laravel5.1 框架登錄和注冊實現方法。分享給大家供大家參考,具體如下:

關于登錄和注冊 Laravel自帶了一套組件實現了這一功能,我們只需要實現簡單的視圖即可。

AuthController是專門管理用戶注冊和登錄的。

PassWordController是重置密碼用的,今天暫不做記錄。

1 配置

我們可以在 config/auth.php 文件中進行用戶認證的配置:

<?php
return [
  /*
  |--------------------------------------------------------------------------
  | Default Authentication Driver
  |--------------------------------------------------------------------------
  |
  | This option controls the authentication driver that will be utilized.
  | This driver manages the retrieval and authentication of the users
  | attempting to get access to protected areas of your application.
  |
  | Supported: "database", "eloquent"
  |
  */
  'driver' => 'eloquent',
  /*
  |--------------------------------------------------------------------------
  | Authentication Model
  |--------------------------------------------------------------------------
  |
  | When using the "Eloquent" authentication driver, we need to know which
  | Eloquent model should be used to retrieve your users. Of course, it
  | is often just the "User" model but you may use whatever you like.
  |
  */
  'model' => App\User::class,
  /*
  |--------------------------------------------------------------------------
  | Authentication Table
  |--------------------------------------------------------------------------
  |
  | When using the "Database" authentication driver, we need to know which
  | table should be used to retrieve your users. We have chosen a basic
  | default value but you may easily change it to any table you like.
  |
  */
  'table' => 'users',
  /*
  |--------------------------------------------------------------------------
  | Password Reset Settings
  |--------------------------------------------------------------------------
  |
  | Here you may set the options for resetting passwords including the view
  | that is your password reset e-mail. You can also set the name of the
  | table that maintains all of the reset tokens for your application.
  |
  | The expire time is the number of minutes that the reset token should be
  | considered valid. This security feature keeps tokens short-lived so
  | they have less time to be guessed. You may change this as needed.
  |
  */
  'password' => [
    'email' => 'emails.password',
    'table' => 'password_resets',
    'expire' => 60,
  ],
];

這是默認的配置,注釋寫的很清楚了 如果有特別需要可以做更改,一般情況中我們使用默認的就OK。

2 創建路由

/**
 * 用戶認證
 */
// getLogin 用于展示登錄表單。
Route::get('/auth/login', 'Auth\[email protected]');
// postLogin 用于提交用戶登錄數據。
Route::post('/auth/login', 'Auth\[email protected]');
// getLogout 用于退出登錄。
Route::get('/auth/logout', 'Auth\[email protected]');
/**
 * 用戶注冊
 */
// getRegister 用于展示注冊表單。
Route::get('/auth/register', 'Auth\[email protected]');
// postRegister 用于提交用戶注冊數據。
Route::post('/auth/register', 'Auth\[email protected]');

3 注冊實現

3.1 編寫視圖

注冊視圖的路徑必須放在 views/auth/ 目錄中 并命名為 register.blade.php。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>用戶注冊</title>
  <link rel="stylesheet"  rel="external nofollow" rel="external nofollow" >
</head>
<body>
<div class="container">
  <div class="row">
    <div class="col-md-8 col-md-offset-2">
      <div class="panel panel-default">
        <div class="panel-heading">Register</div>
        <div class="panel-body">
          <form action="{{ url('/auth/register') }}" method="post" role="form" class="form-horizontal">
            <input type="hidden" name="_token" value="{{ csrf_token() }}">
            <div class="form-group">
              <label class="col-md-4 control-label">用戶名:</label>
              <div class="col-md-6">
                <input type="text" name="name" class="form-control" autofocus>
              </div>
            </div>
            <div class="form-group">
              <label class="col-md-4 control-label">郵箱:</label>
              <div class="col-md-6">
                <input type="email" name="email" class="form-control">
              </div>
            </div>
            <div class="form-group">
              <label class="col-md-4 control-label">密碼:</label>
              <div class="col-md-6">
                <input type="password" name="password" class="form-control">
              </div>
            </div>
            <div class="form-group">
              <label class="col-md-4 control-label">確認密碼:</label>
              <div class="col-md-6">
                <input type="password" name="password_confirmation" class="form-control">
              </div>
            </div>
            <div class="form-group">
              <div class="col-md-offset-4 col-md-8">
                <button type="submit" class="btn btn-primary">注冊</button>
              </div>
            </div>
          </form>
        </div>
      </div>
    </div>
  </div>
</div>
</body>
</html>

3.2 修改跳轉URL

注冊后跳轉的URL有時候不是我們想要的,你可以自定義跳轉路由,在AuthController中添加即可:

protected $redirectPath = '/';

4 登錄實現

我們注冊后已經有了用戶了 現在可以試試登錄的實現了。

4.1 編寫視圖

登錄的視圖路徑也是有規定的:views/auth/ 然后命名為:login.balde.php

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>用戶登錄</title>
  <link rel="stylesheet"  rel="external nofollow" rel="external nofollow" >
</head>
<body>
<div class="container">
  <div class="row">
    <div class="col-md-8 col-md-offset-2">
      <div class="panel panel-default">
        <div class="panel-heading">Login</div>
        <div class="panel-body">
          <form action="{{ url('/auth/login') }}" method="post" role="form" class="form-horizontal">
            <input type="hidden" name="_token" value="{{ csrf_token() }}">
            <div class="form-group">
              <label class="col-md-4 control-label">郵箱:</label>
              <div class="col-md-6">
                <input type="email" name="email" class="form-control">
              </div>
            </div>
            <div class="form-group">
              <label class="col-md-4 control-label">密碼:</label>
              <div class="col-md-6">
                <input type="password" name="password" class="form-control">
              </div>
            </div>
            <div class="form-group">
              <div class="col-md-offset-4 col-md-8">
                <button type="submit" class="btn btn-primary">登錄</button>
              </div>
            </div>
          </form>
        </div>
      </div>
    </div>
  </div>
</div>
</body>
</html>

4.2 登錄后跳轉

登錄后的跳轉跟注冊后的跳轉是一樣的:

protected $redirectPath = '/';

4.3 登錄失敗跳轉

當登錄失敗了Laravel會默認跳轉回 auth/login 路由,這也是可以自定義的:

protected $loginPath = '/error';

4.4 修改登錄用戶名

默認的登陸用戶名是郵箱,我們可以在AuthController中自定義:

// 該屬性默認為email,改成name是以用戶名作為賬號類型登錄。
protected $username = 'name';

4.5 查看用戶信息

我們可以通過Auth門面的方法來訪問已經登錄進來的用戶:

Auth::user()

4.6 檢查用戶是否登錄

if (Auth::check()) {
  // 這個用戶已經登錄...
}

4.7 用于登錄失敗次數限制

Laravel支持這種邏輯,我們只需要在AuthController中引入 ThrottlesLogins 這個trait 即可。一分鐘內登錄5次都不成功就會鎖閉一分鐘,它是基于 用戶名/郵箱和IP地址的。

5 登出用戶

我們只需要訪問 /auth/logout 就可以登出用戶了,當然還有一個方法 就是Auth門面方法:

Auth::logout();

更多關于Laravel相關內容感興趣的讀者可查看本站專題:《Laravel框架入門與進階教程》、《php優秀開發框架總結》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家基于Laravel框架的PHP程序設計有所幫助。

您可能感興趣的文章:

  • Laravel 5.4重新登錄實現跳轉到登錄前頁面的原理和方法
  • Laravel5.2使用Captcha生成驗證碼實現登錄(session巨坑)
  • laravel5.2實現區分前后臺用戶登錄的方法
  • laravel5實現微信第三方登錄功能
  • 基于Laravel5.4實現多字段登錄功能方法示例
  • Laravel5.5 實現后臺管理登錄的方法(自定義用戶表登錄)
  • 解決laravel5中auth用戶登錄其他頁面獲取不到登錄信息的問題
  • laravel 5.3 單用戶登錄簡單實現方法
  • Laravel5.4框架使用socialite實現github登錄的方法
  • Laravel 5.5 實現禁用用戶注冊示例

相關文章

  • Laravel5.1 框架登錄和注冊實現方法詳解

    Laravel5.1 框架登錄和注冊實現方法詳解

    本文實例講述了Laravel5.1 框架登錄和注冊實現方法。分享給大家供大家參考,具體如下: 關于登錄和注冊 Laravel自帶了一套組件實現了這一功能,我們只需要實現簡單的
    2020-01-24
  • Laravel5.1 框架模型工廠ModelFactory用法實例分析

    Laravel5.1 框架模型工廠ModelFactory用法實例分析

    本文實例講述了Laravel5.1 框架模型工廠ModelFactory用法。分享給大家供大家參考,具體如下: 今天要說的是模型工廠,它是可以快速生成一些測試數據的東西,之前我們
    2020-01-24
  • Laravel5.1 框架模型查詢作用域定義與用法實例分析

    Laravel5.1 框架模型查詢作用域定義與用法實例分析

    本文實例講述了Laravel5.1 框架模型查詢作用域定義與用法。分享給大家供大家參考,具體如下: 所謂的查詢作用域就是允許你自定義一個查詢語句 把它封裝成一個方法。
    2020-01-24
  • Laravel5.1 框架模型一對一關系實現與使用方法實例分析

    Laravel5.1 框架模型一對一關系實現與使用方法實例分析

    本文實例講述了Laravel5.1 框架模型一對一關系實現與使用方法。分享給大家供大家參考,具體如下: 這篇文章主要記錄模型的一對一關系,關聯關系是Model的一種非常方
    2020-01-24
  • php 實現svg轉化png格式的方法分析

    php 實現svg轉化png格式的方法分析

    本文實例講述了php 實現svg轉化png格式的方法。分享給大家供大家參考,具體如下: svg轉png實現 1.php imagick擴展插件 a.研究imagick插件方法 $im = new Imagick
    2020-01-24
  • header函數設置響應頭解決php跨域問題實例詳解

    header函數設置響應頭解決php跨域問題實例詳解

    設置允許訪問的域名: 1、允許全部的域名訪問 header("Access-Control-Allow-Origin:*"); 2、允許指定域名訪問 header( 'Access-Control-Allow-Origin://
    2020-01-24
  • Laravel5.1 框架模型遠層一對多關系實例分析

    Laravel5.1 框架模型遠層一對多關系實例分析

    本文實例講述了Laravel5.1 框架模型遠層一對多關系。分享給大家供大家參考,具體如下: 遠層一對多我們可以通過一個例子來充分的了解它: 每一篇文章都肯定有并且只
    2020-01-24
  • Laravel5.1 框架文件管理操作實例分析

    Laravel5.1 框架文件管理操作實例分析

    本文實例講述了Laravel5.1 框架文件管理操作。分享給大家供大家參考,具體如下: Laravel提供了一套很好用的文件系統 方便于管理文件夾和文件,支持Amazon S3和Rack
    2020-01-24
  • Laravel5.1 框架模型多態關聯用法實例分析

    Laravel5.1 框架模型多態關聯用法實例分析

    本文實例講述了Laravel5.1 框架模型多態關聯用法。分享給大家供大家參考,具體如下: 什么是多態關聯? 一個例子你就明白了:好比如說評論 它可以屬于視頻類 也可以
    2020-01-24
  • Laravel5.1 框架關聯模型之后操作實例分析

    Laravel5.1 框架關聯模型之后操作實例分析

    本文實例講述了Laravel5.1 框架關聯模型之后操作。分享給大家供大家參考,具體如下: 之前寫過關于模型關聯的筆記,但是模型關聯好后的一些使用沒有介紹,今天補上
    2020-01-24

最新評論