1. 程式人生 > >laravel框架的登入登出

laravel框架的登入登出

首先確認,後臺的使用者表,我設計表叫做badmin,每個管理員有使用者名稱(username),有暱稱(nickname),有郵箱(email),有密碼(password) 這裡玩個花,使用laravel的migration來建立表(實際上可以用不著使用這個工具建立表)

1 安裝好最基本的laravel框架

2 建立migration檔案:

./artisan migrate:make create-badmin-table

3 發現app/database/migration/下面多了一個php檔案:

2014_10_19_090336_create-badmin-table.php

4 往up和down裡面增加內容;

複製程式碼
<?php
 
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
 
class CreateBadminTable extends Migration {
 
     
/** * Run the migrations. * * @return void */ public function up() { Schema::create('badmin', function($table) { $table->increments('id'); $table->string('nickname', 100)->unique(); $table->string
('username', 100)->unique(); $table->string('email', 100)->unique(); $table->string('password', 64); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop(
'badmin'); } }
複製程式碼

5 配置好local的database,app/config/local/database.php

複製程式碼
<?php
 
return array(
 
    'fetch' => PDO::FETCH_CLASS,
 
    'default' => 'mysql',
 
    'connections' => array(
 
        'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => ’test',
            'username'  => 'yejianfeng',
            'password'  => '123456',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),
 
    ),
 
    'migrations' => 'migrations',
 
);
複製程式碼

6 建立資料表:

./artisan migrate --env=local 這個時候去資料庫看,就發現多了一張badmin表,資料結構如下: 複製程式碼
CREATE TABLE `badmin` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `nickname` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  `username` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  `email` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  `password` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id`),
  UNIQUE KEY `badmin_nickname_unique` (`nickname`),
  UNIQUE KEY `badmin_username_unique` (`username`),
  UNIQUE KEY `badmin_email_unique` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
複製程式碼 要問這裡為什麼多出了create_at和update_at,這是laravel預設為每個表建立的欄位,而且在使用Eloquent進行增刪改查的時候能自動更新這兩個欄位

7 建立個Model:

複製程式碼
<?php
 
use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;
 
class Badmin extends Eloquent implements UserInterface, RemindableInterface {
 
     use UserTrait, RemindableTrait;
 
     protected $table = 'badmin';
 
     protected $hidden = array('password');
 
     public static $rules = [
          'nickname' => 'required|alpha_num|min:2',
          'username' => 'required',
          'email'=>'required|email|unique:badmin',
          'password'=>'required|alpha_num|between:6,12|confirmed',
     ];
}
複製程式碼 這裡必須要implements UserInterface和RemindableInterface

8 把model和Auth關聯上,修改app/config/auth.php

複製程式碼
<?php
 
return array(
 
     // 預設的使用者驗證驅動
     // 可以是database或者eloquent
     'driver' => 'eloquent',
 
     // 只有驅動為eloquent的時候才有用
     'model' => 'Badmin',
 
);
複製程式碼 這裡的driver可以是eloquent或者database,使用eloquent就告訴Auth元件說,使用者認證類是Badmin這個類管的。這裡的model是有名稱空間的,就是說如果你的admin類是\Yejianfeng\Badmin,這裡就應該改成’\Yejianfeng\Badmin’

9 好了,這個時間其實邏輯部分已經搭建完畢了,你已經可以在controller種使用

Auth::attempt(XXX) 做許可權認證 Auth::user() 獲取登入使用者(一個Badmin類) 等。

10 下面要建立一個使用者登入頁面:

11 設定路由:

複製程式碼
<?php
 
// 不需要登入驗證的介面
Route::get('/', ['as' => 'user.login','uses'=>'[email protected]']);
Route::get('user/login', ['as' => 'login', 'uses' => '[email protected]']);
Route::post('user/login', ['as' => 'login', 'uses' => '[email protected]']);
 
// 需要登入驗證才能操作的介面
Route::group(array('before' => 'auth'), function()
{
    Route::get('user/logout', ['as' => 'logout', 'uses' => '[email protected]']);
    Route::get('user/dashboard', ['as' => 'dashboard', 'uses' => '[email protected]']);
});
複製程式碼

12 設定controller:

複製程式碼
<?php
 
class UserController extends BaseController {
 
     // 登入頁面
     public function getLogin()
     {
          return View::make('user.login');
     }
 
     // 登入操作
     public function postLogin()
     {
          if (Auth::attempt(array('email'=>Input::get('email'), 'password'=>Input::get('password')))) {
              return Redirect::to('user/dashboard')
              ->with('message', '成功登入');
          } else {
              return Redirect::to('user/login')
                    ->with('message', '使用者名稱密碼不正確')
                    ->withInput();
          }
     }
 
     // 登出
     public function getLogout()
     {
          Auth::logout();
          return Redirect::to('user/login');
     }
 
     public function getDashboard()
     {
          return View::make('user.dashboard');
     }
 
     // 新增新使用者操作
     public function getCreate()
     {
          return View::make('user.create');
     }
 
     // 新增新使用者操作
     public function postCreate()
     {
          $validator = Validator::make(Input::all(), User::$rules);
 
          if ($validator->passes()){
               $bAdmin = new Badmin();
               $bAdmin->nickname = Input::get('nickname');
               $bAdmin->username = Input::get('username');
               $bAdmin->email = Input::get('email');
               $user->password = Hash::make(Input::get('password'));
               $user->save();
 
               Response::json(null);
          } else {
               Response::json(['message' => '註冊失敗'], 410);
          }
     }
}
 
複製程式碼

13 設定下filter,app/filter.php

複製程式碼
Route::filter('auth', function()
{
     if (Auth::guest())
     {
          if (Request::ajax())
          {
               return Response::make('Unauthorized', 401);
          }
          else
          {
               return Redirect::guest('/');
          }
     }
});
 
複製程式碼 將這裡認證失敗後的地址轉到/ 路徑

14 設定views/user/login.blade.php

這裡擷取一部分 可以看出,這裡可以直接使用Session::has和Session::get

相關推薦

laravel框架登入登出

首先確認,後臺的使用者表,我設計表叫做badmin,每個管理員有使用者名稱(username),有暱稱(nickname),有郵箱(email),有密碼(password) 這裡玩個花,使用laravel的migration來建立表(實際上可以用不著使用這個工具建立表

php-laravel框架使用者驗證(Auth)模組解析(三)登入模組

一、登入模組路由 路由名稱 請求方式 方法實現 /login GET 登入頁面 /login POST 實現登入功能 /logou

小程式實現第三方登入,後臺採用的是laravel框架

在本次小程式開發的過程中,踩了比較多的坑,也受到了很多開原始碼、技術部落格的啟迪,一直想找時間寫一篇博文,總結一下小程式實現第三方登入的流程。文章為本人原創,如有不同見解可互相交流。 1、何為小程式的第三方登入? 用過小程式的人都知道,很多小程式在使用者進入的時候會詢問使

laravel框架之後臺登入、退出

我們在寫後臺管理系統時,登入,退出是避免不了的,那我們如何使用laravel實現呢? 首先,我們來看看登入如何實現? //登入 public function logins(){ //post方式則為登入操作 if(Request()->isMethod('post')

laravel 實現使用者登入登出並限制

 1. 建立登入控制器   在專案根目錄輸入: php artisan make:controller Admin/LoginController       2.建立使用者模組  以及資料庫 &

基於SSH2框架AspectJ的登入登出日誌實現

AOP切面是一個非常不錯的特性,為我們帶來了一種新的程式設計方式,對程式碼的無侵入性是它最大的特點。像上篇我們用到的Struts2攔截器就是AOP的一個典型運用。從Spring的低版本開始就能夠實現切面功能,但是非常麻煩,不過當Spring升級到2.0之後,這一情況就徹底改變了。運用JDK 5.0支援的註解

php laravel框架學習筆記 (二) 數據庫操作

true 數據 mar sql show top 一行 ati del 原博客鏈接:http://www.cnblogs.com/bitch1319453/p/6810492.html mysql基本配置 你可用通過配置環境變量,使用cmd進入mysql,當然還有一種東

laravel框架關聯的模型怎麽加入篩選條件

style return 篩選 mod color 簡單 alua blog table 比如:商品模型關聯評論模型,要給商品模型家條件很簡單,在控制器裏直接寫就行了,但是要給關聯的評論模型加篩選條件,該怎麽加 protected $table = "wd_yylm_g

php laravel 框架搭建與運行

all config blog tco ons repos lar const download 目錄 安裝 composer 安裝 laravel 運行 php hello world 一、安裝 composer (mac)   下載 composer.p

阿裏雲centos7.2 搭建 laravel 框架走過的坑

阿裏雲centos7.2 搭建 laravel 框架走過的坑centos7.2 搭建 laravel框架走過的坑前言 公司正在處於發展階段最近開發的夥伴和運維的夥伴一直在忙碌著 開發人員一直在寫laravel架構的代碼以及新項目的拓展,時間很趕所以作為linux運維的我也不能怠慢。首先搭建lnmp架構 ngi

laravel框架的個人筆記

laravel框架的個人筆記具體安裝環境可更具最新版本的文檔來,一下內容 只是我代碼的一些操作demo ,是對文檔進行的個人筆記;//路由命名Route::get(‘admin‘,[‘as‘=>‘profile‘,function(){ echo route(‘profile‘); re

laravel框架 5.4 關於驗證和添加存在的bug

laravel框架 5.4 關於驗證和添加存在的bug今天本地測試添加用戶沒有問題。提交到服務器就報錯 sql語句找不到User.user_name字段;後來請教了一位大神,他告訴我 首先匹配服務器環境最好一至,我再執行驗證的時候有一個有個查詢的過程也就是驗證用戶唯一性的unique方法,這個方法是有參數的!

laravel框架 5.4自定義報錯頁面設置

laravel框架 5.4自定義報錯頁面設置在開發中遇到了如果此連接是正確的訪問地址http://localhost/cky/ckyweb/public/admin/userlist?page=2那麽 我在此連接的後面隨便加一下字符就會出現報錯信息在網站上線後是不允許這麽做的,所以結合laravel框架自帶的

Laravel 框架在 Mac 上使用命令 npm run dev 時報錯問題

教程 入門 印象 ron nod bsp img 感覺 sas 我是看的Summer寫的 Laravel 入門教程,用的 Mac 上 Homestead---Vagrant 第四章時一個步驟是要將 Laravel 默認生成的 .scss 文件編譯成 .css 才行。 命令如

laravel 框架給數組分頁

dmi new ont 框架 pass count n) lar erp //Get current page form url e.g. &page=6 $currentPage = LengthAwarePaginator::res

nginx下laravel框架rewrite的設置

table alt 理發 lin adding 內容 space nbsp text nginx下laravel框架rewrite的設置 百牛信息技術bainiu.ltd整理發布於博客園 在nginx的vhost站點配置文件中加入以下內容即可 1 2 3 4 5

PHP Laravel框架入門心得

del 資源 route 基礎 bsp 框架 習慣 com 基礎上 PHP有不少開發框架,其中比較出名的有Symfony和Laravel。 我說說我最近入門Laravel的感受和學習方法吧。 1。第一個感受是Laravel的社區討論和學習資源真的是太棒了,中文化也

laravel框架學習-緩存,事件

unique 例子 schema ase 方法 data handle table etime 緩存配置:app/config/cache.php 緩存: 增加緩存項: Cache::put( ‘key‘, ‘value‘, $Cachetime );

使用Laravel框架發送郵件

設置 發送 操作 如何 功能 ges 需要 cnblogs aca 今天我們來看看用Laravel框架如何實現郵件發送功能 第一步:在mail.php文件中修改      我這裏以163郵箱為例 第二步:修改.env文件      圈出的部分是要在郵箱裏設置的授權碼,如果沒

laravel框架入門

業務邏輯 選項 blog copyright 服務器 復數 生成文件 怎樣 單元測試 本文摘自網絡,個人感覺寫的很不錯,決定收藏一下純屬本人學習之用 本文介紹如何開始使用 Laravel。 讀完本文,你將學到: 如何安裝 Laravel,新建 Laravel 程序,如何連