Maison > php教程 > PHP开发 > Explication détaillée des étapes pour créer un système de connexion backend dans Laravel

Explication détaillée des étapes pour créer un système de connexion backend dans Laravel

高洛峰
Libérer: 2016-12-23 17:14:48
original
1528 Les gens l'ont consulté

L'exemple de cet article décrit comment créer un système de connexion backend dans Laravel. Je le partage avec vous pour votre référence. Les détails sont les suivants :

Aujourd'hui, je souhaite utiliser Laravel pour créer un système backend. J'ai besoin du plus simple. Il y a des utilisateurs qui se connectent au système. en l'essayant, j'ai l'impression que les utilisateurs de Laravel peuvent se connecter. C'est vraiment content. Bien entendu, le principe est que le système de gestion des utilisateurs que vous souhaitez est le plus simple, c'est-à-dire qu'il vous suffit de pouvoir vous connecter sans autorisations utilisateur.

Je n'utiliserai pas ici la table des utilisateurs par défaut comme exemple, car elle serait facile à confondre avec certains des paramètres par défaut de Laravel.

Tout d'abord, confirmez que la table user en arrière-plan s'appelle badin. Chaque administrateur a un nom d'utilisateur, un pseudo, un email et un mot de passe

Pour vous amuser ici, utilisez la migration de Laravel pour créer le. table (en fait, vous n'avez pas besoin d'utiliser cet outil pour créer la table)

1 Installez le framework Laravel le plus basique

2 Créez un fichier de migration :

./artisan migrate:make create-badmin-table

3 Trouvé un fichier php supplémentaire sous app/database/migration/ :

2014_10_19_090336_create-badmin -table.php

4 Ajouter du contenu vers le haut et vers le bas ;

<?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(&#39;badmin&#39;, function($table)
     {
       $table->increments(&#39;id&#39;);
        $table->string(&#39;nickname&#39;, 100)->unique();
        $table->string(&#39;username&#39;, 100)->unique();
        $table->string(&#39;email&#39;, 100)->unique();
        $table->string(&#39;password&#39;, 64);
        $table->timestamps();
     });
   }
   /**
   * Reverse the migrations.
   *
   * @return void
   */
   public function down()
   {
     Schema::drop(&#39;badmin&#39;);
   }
}
Copier après la connexion

5 Configurez la base de données locale, app/config /local/database.php

<?php
return array(
  &#39;fetch&#39; => PDO::FETCH_CLASS,
  &#39;default&#39; => &#39;mysql&#39;,
  &#39;connections&#39; => array(
    &#39;mysql&#39; => array(
      &#39;driver&#39;  => &#39;mysql&#39;,
      &#39;host&#39;   => &#39;localhost&#39;,
      &#39;database&#39; => &#39;test&#39;,
      &#39;username&#39; => &#39;yejianfeng&#39;,
      &#39;password&#39; => &#39;123456&#39;,
      &#39;charset&#39;  => &#39;utf8&#39;,
      &#39;collation&#39; => &#39;utf8_unicode_ci&#39;,
      &#39;prefix&#39;  => &#39;&#39;,
    ),
  ),
  &#39;migrations&#39; => &#39;migrations&#39;,
);
Copier après la connexion

6 Créer une table de données :

./artisan migrate --env=local

À ce moment-là, je suis allé dans la base de données et j'ai trouvé que il y avait une table badadmin supplémentaire. La structure des données est la suivante :

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 &#39;0000-00-00 00:00:00&#39;,
 `updated_at` timestamp NOT NULL DEFAULT &#39;0000-00-00 00:00:00&#39;,
 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;
Copier après la connexion

create_at et update_at, ce sont des champs créés par laravel par défaut pour chaque table, et ces deux champs peuvent être automatiquement mis à jour lors de l'utilisation d'Eloquent. pour effectuer des ajouts, des suppressions, des modifications et des requêtes

7 Créer un modèle :

<?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 = &#39;badmin&#39;;
   protected $hidden = array(&#39;password&#39;);
   public static $rules = [
     &#39;nickname&#39; => &#39;required|alpha_num|min:2&#39;,
     &#39;username&#39; => &#39;required&#39;,
     &#39;email&#39;=>&#39;required|email|unique:badmin&#39;,
     &#39;password&#39;=>&#39;required|alpha_num|between:6,12|confirmed&#39;,
   ];
}
Copier après la connexion

Ici, vous devez implémenter UserInterface et RemindableInterface

8 Associez le modèle à Auth et modifiez app/config/auth.php

<?php
return array(
   // 默认的用户验证驱动
   // 可以是database或者eloquent
   &#39;driver&#39; => &#39;eloquent&#39;,
   // 只有驱动为eloquent的时候才有用
   &#39;model&#39; => &#39;Badmin&#39;,
);
Copier après la connexion

Le pilote ici peut être éloquent ou utilisant une base de données. eloquent indique au composant Auth que la classe d'authentification utilisateur est gérée par la classe Badmin. Le modèle ici a un espace de noms, c'est-à-dire que si votre classe d'administrateur est YejianfengBadmin, elle devrait être remplacée par 'YejianfengBadmin'

9 D'accord, à ce stade, la partie logique a en fait été construite, et vous peut déjà utiliser

Auth::attempt(XXX) dans le contrôleur pour l'authentification des autorisations

Auth::user() pour obtenir l'utilisateur connecté (une classe Badmin)

et bientôt.

10 Ensuite, créez une page de connexion utilisateur :


11 Définir le routage :

Explication détaillée des étapes pour créer un système de connexion backend dans Laravel

<?php
// 不需要登录验证的接口
Route::get(&#39;/&#39;, [&#39;as&#39; => &#39;user.login&#39;,&#39;uses&#39;=>&#39;UserController@getLogin&#39;]);
Route::get(&#39;user/login&#39;, [&#39;as&#39; => &#39;login&#39;, &#39;uses&#39; => &#39;UserController@getLogin&#39;]);
Route::post(&#39;user/login&#39;, [&#39;as&#39; => &#39;login&#39;, &#39;uses&#39; => &#39;UserController@postLogin&#39;]);
// 需要登录验证才能操作的接口
Route::group(array(&#39;before&#39; => &#39;auth&#39;), function()
{
  Route::get(&#39;user/logout&#39;, [&#39;as&#39; => &#39;logout&#39;, &#39;uses&#39; => &#39;UserController@getLogout&#39;]);
  Route::get(&#39;user/dashboard&#39;, [&#39;as&#39; => &#39;dashboard&#39;, &#39;uses&#39; => &#39;UserController@getDashboard&#39;]);
});
Copier après la connexion

12 Définir le contrôleur :

<?php
class UserController extends BaseController {
   // 登录页面
   public function getLogin()
   {
     return View::make(&#39;user.login&#39;);
   }
   // 登录操作
   public function postLogin()
   {
     if (Auth::attempt(array(&#39;email&#39;=>Input::get(&#39;email&#39;), &#39;password&#39;=>Input::get(&#39;password&#39;)))) {
       return Redirect::to(&#39;user/dashboard&#39;)
       ->with(&#39;message&#39;, &#39;成功登录&#39;);
     } else {
       return Redirect::to(&#39;user/login&#39;)
          ->with(&#39;message&#39;, &#39;用户名密码不正确&#39;)
          ->withInput();
     }
   }
   // 登出
   public function getLogout()
   {
     Auth::logout();
     return Redirect::to(&#39;user/login&#39;);
   }
   public function getDashboard()
   {
     return View::make(&#39;user.dashboard&#39;);
   }
   // 添加新用户操作
   public function getCreate()
   {
     return View::make(&#39;user.create&#39;);
   }
   // 添加新用户操作
   public function postCreate()
   {
     $validator = Validator::make(Input::all(), User::$rules);
     if ($validator->passes()){
        $bAdmin = new Badmin();
        $bAdmin->nickname = Input::get(&#39;nickname&#39;);
        $bAdmin->username = Input::get(&#39;username&#39;);
        $bAdmin->email = Input::get(&#39;email&#39;);
        $user->password = Hash::make(Input::get(&#39;password&#39;));
        $user->save();
        Response::json(null);
     } else {
        Response::json([&#39;message&#39; => &#39;注册失败&#39;], 410);
     }
   }
}
Copier après la connexion

13 Définir le filtre, app/filter.php

Route::filter(&#39;auth&#39;, function()
{
   if (Auth::guest())
   {
     if (Request::ajax())
     {
        return Response::make(&#39;Unauthorized&#39;, 401);
     }
     else
     {
        return Redirect::guest(&#39;/&#39;);
     }
   }
});
Copier après la connexion

Modifiez l'adresse après l'échec de l'authentification en /path

14 Définir vues/user/login.blade.php

Comme vous pouvez le voir, ici Vous pouvez utilisez directement Session::has et Session::get

et vous avez pratiquement terminé...

J'espère que cet article sera utile à la conception de programmes PHP de chacun basé sur le framework Laravel.

Pour des informations plus détaillées sur les étapes à suivre pour créer un système de connexion backend avec Laravel, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal