API 文档 - ginkgo


ginkgo\Auth

0.1.2 新增

认证是鉴定用户身份的过程。它通常使用一个标识符(如用户名)和一个加密令牌(比如密码或者存取令牌)来鉴别用户身份。认证是登录功能的基础。


类摘要

namespace ginkgo;

class Auth {
    // 属性
    public $prefix = 'user';
    public $config = array();
    public $options = array(
        'cookie'    => true,
        'remember'  => false,
    );
    public $error;

    protected static $instance;

    private $session;
    private $cookie;
    private $remember;
    private $configThis = array(
        'session_expire'    => 1200,
        'remember_expire'   => 2592000,
    );

    // 方法
    public static instance( [ array $config = array() [, string $prefix ]] ) : object
    public read() : array
    public write( array $authRow [, bool $regen = false [, string $loginType = 'form' [, string $remember [, mixed $pathCookie = '/' ]]]] )
    public end( [ bool $regen = false ] )
    public check( array $authRow [, mixed $pathCookie = '/' ] ) : bool
    public config( array $config )
    public prefix( [ string $prefix ] ) : string
    public setOptions( string $name [, string $value ] )
    public getOptions( [ string $name ] ) : string
    public getError() : string

    protected __construct( [ array $config = array() [, string $prefix ]] ) : object
    protected __clone()

    private checkParam( array $authRow ) : bool
    private haveSession() : bool
    private haveRemenber() : bool
    private hashProcess( array $authRow ) : string
}

成员目录

- 权限 类型 描述
属性 - - -
$prefix public string 前缀
$config public array 配置
$options public array 选项
$error public string 错误消息
$instance protected object static 本类的实例
$session private array 会话
$cookie private array Cookie
$remember private array 记住密码
$configThis private array 默认配置
方法 - - -
instance() public static 实例化方法
read() public 读取认证信息
write() public 写入认证信息
end() public 结束会话
check() public 会话校验
config() public 配置
prefix() public 设置、读取前缀
setOptions() public 设置选项
getOptions() public 读取选项
getError() public 读取错误
__construct() protected instance()
__clone() protected 克隆,无实际功能,仅供限制为单例模式使用
checkParam() private 验证参数
haveSession() private 验证是否有会话信息
haveRemenber() private 验证是否记住密码
hashProcess() private 哈希处理

$config 配置,$configThis 默认配置

0.2.0 新增

public $config;
private $configThis;

结构

名称 类型 默认 描述
session_expire int 20分钟 认证过期时间
remember_expire int 30天 记住密码过期时间

$options 选项

public $options;

结构:

选项名 类型 默认 描述
cookie bool true 是否开启 cookie,如果开启,系统将同时通过 cookie 来验证
remember bool false 是否开启记住用户,如果开启,系统可以实现自动登录

$session 会话,$cookie Cookie,$remember 记住密码

private $session;
private $cookie;
private $remember;

结构

名称 类型 描述
前缀_id int 用户 ID
前缀_name string 用户名
前缀_hash string 哈希值
前缀_time int 保存时间
前缀_time_expire int 过期时间

instance() 实例化

public static function instance( [ array $config [, string $prefix ]] ) : object

参数

  • $config 配置参数
  • prefix 前缀

返回

  • 本类实例

read() 读取认证信息

public function read() : array

参数

返回

  • 认证信息

    结构如下:

    属性 类型 描述
    $session array 会话
    $cookie array Cookie
    $remember array 记住密码

write() 写入认证信息

public function write( array $authRow [, bool $regen = false [, string $loginType = 'form' [, string $remember [, mixed $pathCookie = '/' ]]]] )

参数

  • authRow 用户信息
  • regen 使用新生成的会话 ID 更新现有会话 ID

    布尔值,默认为 false

  • loginType 登录类型

    字符串,默认为 form,表示从表单登录,开发者可以根据实际情况自行命名,如:auto 等等

  • remember 记住登录状态

    字符串,默认为空,要记住登录状态,必须将本参数设置为 remember0.2.0 起可以为 true

  • pathCookie Cookie 保存路径

    字符串或数组,默认 /

返回


end() 结束认证

public function end( [ bool $regen = false ] )

参数

  • regen 是否使用新生成的会话 ID

返回


check() 验证认证信息

public function check( array $authRow [, mixed $pathCookie = '/' ] ) : bool

参数

  • authRow 用户信息
  • pathCookie Cookie 保存路径

    字符串或数组,默认 /

返回

  • 布尔值

config() 配置

0.2.0 新增

public function config( array $config )

参数

返回


prefix() 设置、读取前缀

public function prefix( [ string $prefix ] ) : string

参数

  • prefix 前缀,如此参数为空,则返回当前前缀

返回

  • 前缀

setOptions() 设置选项

public function setOptions( string $name [, string $value ] )

参数

  • name 选项名

    支持两种类型: 为字符串时表示选项名,为数组时表示批量设置。

  • value

    name 参数为字符串时必须,为数组时自动忽略

返回


getOptions() 读取选项

public function getOptions( [ string $name ] ) : string

参数

  • name 选项名

    此选项为空时,返回所有选项

返回

  • 指定选项

getError() 读取错误

public function getError() : string

参数

返回

  • 错误信息

checkParam() 验证参数

private function checkParam( array $authRow ) : bool

参数

返回

  • 布尔值

haveSession() 验证是否有会话信息

private function haveSession() : bool

参数

返回

  • 布尔值

haveRemenber() 是否有记住登录状态

private function haveRemenber() : bool

参数

返回

  • 布尔值

hashProcess() 哈希处理

private function hashProcess( array $authRow ) : string

参数

返回

  • 哈希值

authRow 用户信息:

必须为数组,结构如下:

名称 类型 必需 描述
前缀_id int true ID
前缀_name string true 用户名
前缀_time_login int true 最后登录时间(UNIX 时间戳)
前缀_ip string true IP 地址