zoukankan      html  css  js  c++  java
  • AUTH 用户管理操作

    AUTH的实现是用抽象类来实现的,一个类,对应多种不同的验证方式。

    先来介绍一个抽象类,很有借鉴意义:

    实现一个猴子类,狗类,以及后面可其他类。 通常可以用抽象类和接口实现:

    但是我们不直接定义具体的类,我们把所有猴子类,狗类的特征放在不同的config里面,同过抽象类方法来 初始话一个对象。

    config.php

    1 <?php
    2 return array(
    3     'driver'=>'monkey',//调用那个类。
    4         'index'=>'Ani',//其他。
    5 );
    config

    animal.php

     1 <?php
     2 abstract class Animal{
     3     protected static $_instance;
     4     
     5     public static function instance($config){
     6 
     7         $driver=$config['driver'];
     8         $ind=$config['index'];
     9         require "animal/$driver.php";
    10         
    11         $class=$ind."_".$driver;
    12         self::$_instance=new $class($config);
    13         return self::$_instance;
    14     }
    15     
    16 }
    17 
    18 $config=require 'animal/config/config.php';
    19 $dog=Animal::instance($config);
    20 echo $dog->getname();
    View Code

    dog.php

    1 <?php
    2 // require '../animal.php';
    3 class Ani_dog extends Animal{
    4     
    5     function getname(){
    6         return "dog";
    7     }
    8     
    9 }
    View Code

    monkey.php

    1 <?php
    2 // require '../animal.php';
    3 class Ani_monkey extends Animal{
    4     
    5     function getname(){
    6         return "monkey";
    7     }
    8     
    9 }
    View Code

    Auth也是通过这样的方式来调整认证方式,他有一个自定义 driver为 File的类。

    用着个模块第一步,配置好正确的config。

    调用抽象类的来初始化一个对象;

    进行认证。

    如:

    1         $auth = Auth::instance();
    2         if ($auth->login('admin', 'good_pass', true)) {
    3             echo 'hello, ' . $auth->get_user();
    4         } else {
    5             echo 'login failed!';
    6         }
    7         $auth->logout();
    View Code

    AUTH实现的有:

    密码加密:

    利用hash_hmac函数进行hash加密存储。

    session记录登录,可定义自动保留时长。到时间未操作自动推出。

  • 相关阅读:
    ES6箭头函数中this的指向问题
    不借助vue-cli,自行构建一个vue项目
    Vue组件props选项-实现父子组件动态数据绑定
    Linux 基本操作命令
    Javascript
    ES6
    利用Gulp和Webpack进行项目自动化构建
    自定义View实现图片热区效果
    新年学习计划
    Activity跳转通过EventBus传值问题
  • 原文地址:https://www.cnblogs.com/canbefree/p/3835835.html
Copyright © 2011-2022 走看看