Laravel5.1 框架登錄和注冊(cè)實(shí)現(xiàn)方法詳解
本文實(shí)例講述了Laravel5.1 框架登錄和注冊(cè)實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
關(guān)于登錄和注冊(cè) Laravel自帶了一套組件實(shí)現(xiàn)了這一功能,我們只需要實(shí)現(xiàn)簡(jiǎn)單的視圖即可。
AuthController是專門管理用戶注冊(cè)和登錄的。
PassWordController是重置密碼用的,今天暫不做記錄。
1 配置
我們可以在 config/auth.php 文件中進(jìn)行用戶認(rèn)證的配置:
<?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, ], ];
這是默認(rèn)的配置,注釋寫的很清楚了 如果有特別需要可以做更改,一般情況中我們使用默認(rèn)的就OK。
2 創(chuàng)建路由
/** * 用戶認(rèn)證 */ // getLogin 用于展示登錄表單。 Route::get('/auth/login', 'Auth\AuthController@getLogin'); // postLogin 用于提交用戶登錄數(shù)據(jù)。 Route::post('/auth/login', 'Auth\AuthController@postLogin'); // getLogout 用于退出登錄。 Route::get('/auth/logout', 'Auth\AuthController@getLogout'); /** * 用戶注冊(cè) */ // getRegister 用于展示注冊(cè)表單。 Route::get('/auth/register', 'Auth\AuthController@getRegister'); // postRegister 用于提交用戶注冊(cè)數(shù)據(jù)。 Route::post('/auth/register', 'Auth\AuthController@postRegister');
3 注冊(cè)實(shí)現(xiàn)
3.1 編寫視圖
注冊(cè)視圖的路徑必須放在 views/auth/ 目錄中 并命名為 register.blade.php。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>用戶注冊(cè)</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">確認(rèn)密碼:</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">注冊(cè)</button> </div> </div> </form> </div> </div> </div> </div> </div> </body> </html>
3.2 修改跳轉(zhuǎn)URL
注冊(cè)后跳轉(zhuǎn)的URL有時(shí)候不是我們想要的,你可以自定義跳轉(zhuǎn)路由,在AuthController中添加即可:
protected $redirectPath = '/';
4 登錄實(shí)現(xiàn)
我們注冊(cè)后已經(jīng)有了用戶了 現(xiàn)在可以試試登錄的實(shí)現(xiàn)了。
4.1 編寫視圖
登錄的視圖路徑也是有規(guī)定的: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 登錄后跳轉(zhuǎn)
登錄后的跳轉(zhuǎn)跟注冊(cè)后的跳轉(zhuǎn)是一樣的:
protected $redirectPath = '/';
4.3 登錄失敗跳轉(zhuǎn)
當(dāng)?shù)卿浭×薒aravel會(huì)默認(rèn)跳轉(zhuǎn)回 auth/login 路由,這也是可以自定義的:
protected $loginPath = '/error';
4.4 修改登錄用戶名
默認(rèn)的登陸用戶名是郵箱,我們可以在AuthController中自定義:
// 該屬性默認(rèn)為email,改成name是以用戶名作為賬號(hào)類型登錄。 protected $username = 'name';
4.5 查看用戶信息
我們可以通過Auth門面的方法來訪問已經(jīng)登錄進(jìn)來的用戶:
Auth::user()
4.6 檢查用戶是否登錄
if (Auth::check()) { // 這個(gè)用戶已經(jīng)登錄... }
4.7 用于登錄失敗次數(shù)限制
Laravel支持這種邏輯,我們只需要在AuthController中引入 ThrottlesLogins 這個(gè)trait 即可。一分鐘內(nèi)登錄5次都不成功就會(huì)鎖閉一分鐘,它是基于 用戶名/郵箱和IP地址的。
5 登出用戶
我們只需要訪問 /auth/logout 就可以登出用戶了,當(dāng)然還有一個(gè)方法 就是Auth門面方法:
Auth::logout();
更多關(guān)于Laravel相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門與進(jìn)階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家基于Laravel框架的PHP程序設(shè)計(jì)有所幫助。
- Laravel 5.4重新登錄實(shí)現(xiàn)跳轉(zhuǎn)到登錄前頁面的原理和方法
- Laravel5.2使用Captcha生成驗(yàn)證碼實(shí)現(xiàn)登錄(session巨坑)
- laravel5.2實(shí)現(xiàn)區(qū)分前后臺(tái)用戶登錄的方法
- laravel5實(shí)現(xiàn)微信第三方登錄功能
- 基于Laravel5.4實(shí)現(xiàn)多字段登錄功能方法示例
- Laravel5.5 實(shí)現(xiàn)后臺(tái)管理登錄的方法(自定義用戶表登錄)
- 解決laravel5中auth用戶登錄其他頁面獲取不到登錄信息的問題
- laravel 5.3 單用戶登錄簡(jiǎn)單實(shí)現(xiàn)方法
- Laravel5.4框架使用socialite實(shí)現(xiàn)github登錄的方法
- Laravel 5.5 實(shí)現(xiàn)禁用用戶注冊(cè)示例
相關(guān)文章
PHP的fsockopen、pfsockopen函數(shù)被主機(jī)商禁用的解決辦法
這篇文章主要介紹了PHP的fsockopen、pfsockopen函數(shù)被主機(jī)商禁用的解決辦法,一是使用stream_socket_client函數(shù)代替,二是寫一個(gè)類似fsockopen功能的自定義函數(shù),需要的朋友可以參考下2014-07-07PHP模板引擎Smarty內(nèi)置變量調(diào)解器用法詳解
這篇文章主要介紹了PHP模板引擎Smarty內(nèi)置變量調(diào)解器用法,結(jié)合實(shí)例形式詳細(xì)分析了Smarty中的常用內(nèi)置變量調(diào)節(jié)器定義與使用技巧,需要的朋友可以參考下2016-04-04Thinkphp5.1獲取項(xiàng)目根目錄以及子目錄路徑的方法實(shí)例講解
這篇文章主要介紹了Thinkphp5.1獲取項(xiàng)目根目錄以及子目錄路徑的方法實(shí)例講解,希望正在學(xué)習(xí)TP框架的同學(xué)可以跟著小編一起來學(xué)習(xí)研究下2021-03-03thinkphp5.1的model模型自動(dòng)更新update_time字段實(shí)例講解
這篇文章主要介紹了thinkphp5.1的model模型自動(dòng)更新update_time字段實(shí)例講解,文章代碼示例比較簡(jiǎn)單實(shí)用,有正在學(xué)習(xí)tp的同學(xué)可以跟著小編好好閱讀下2021-03-03PHP根據(jù)傳入?yún)?shù)合并多個(gè)JS和CSS文件的簡(jiǎn)單實(shí)現(xiàn)
這篇文章主要介紹了PHP合并多個(gè)JS和CSS文件的簡(jiǎn)單實(shí)現(xiàn),本文使用了一種比較簡(jiǎn)單的方法,重在揭示實(shí)現(xiàn)原理,需要的朋友可以參考下2014-06-06php結(jié)合ajax實(shí)現(xiàn)手機(jī)發(fā)紅包的案例
發(fā)紅包功能,當(dāng)我們輸入紅包數(shù)量和總金額后,PHP會(huì)根據(jù)這兩個(gè)值進(jìn)行隨機(jī)分配每個(gè)金額,保證每個(gè)人都能領(lǐng)取到一個(gè)紅包,每個(gè)紅包金額不等,就是要求紅包金額要有差異,所有紅包金額總額應(yīng)該等于總金額。2016-10-10