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记录登录,可定义自动保留时长。到时间未操作自动推出。

  • 相关阅读:
    代码规范 for node.js with 'npm-coding-style'
    转:HL7 Tools suite
    转 HL7 2.x
    创建公共配置表,并以全国区县代码维护为例
    转 MySQL 数据备份与还原
    [转]''\=DevExpress 中 汉化包 汉化方法
    MSI Error 1603 installing AppFabric 1.1 / Win7 x64
    [转]如何修改远程桌面默认端口号
    【转】windows server 2012清除并重建SID
    oneM2M标准发展神速 实现万物联网的愿景
  • 原文地址:https://www.cnblogs.com/canbefree/p/3835835.html
Copyright © 2011-2022 走看看