Skip to content

WildDogTeam/wilddog-token-generator-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Wilddog Token Generator - PHP

Wilddog允许用户使用自定义Token进行终端用户认证。Token采用的是安全的JSON Web Token(JWT)格式。

本版本生成器为Wilddog Auth2.0对应token生成器。

依赖

Wilddog Token Generator for php 需要运行在php 5.4或更高版本上。 依赖:

  • php-mbstring。

安全提示

由于token的生成需要Wilddog应用的超级密钥, 因此token生成工作只能在信任的服务器上进行。 绝对不要将Wilddog超级密钥嵌入到客户端应用中,以便于保障超级密钥不会泄漏。

生成token

要生成token, 必须要使用wilddog的超级密钥。使用浏览器进入应用的控制面板,在“超级密钥”tab中可以找到应用的超级密钥。 示例代码:

include "CustomTokenException.php";
include "CustomTokenGenerator.php";
use Wilddog\Token\CustomTokenException;
use Wilddog\Token\CustomTokenGenerator;

try {
    $generator = new CustomTokenGenerator('<YOUR_WILDDOG_SECRET>');
    $token = $generator
        ->setData(array('uid' => 'exampleID'))
        ->create();
} catch (CustomTokenException $e) {
    echo "Error: ".$e->getMessage();
}

echo $token;

setData()函数设置token的payload部分。payload必须含有"uid"字段,payload中其他字段都属于自定义字段。uid字段必须是字符串类型,长度小于64字节,且必须为大小写字母,数字及'-'的组合。

最终生成的token必须小于1024字节。

Token Options

可选的options有:

  • expires (number or DateTime) - 时间戳 (秒为单位) 或者一个 DateTime,代表的是token的有效期至。超过这个时间之后,此token将失效。

  • notBefore (number or DateTime) - 时间戳 (秒为单位) 或者一个 DateTime,代表的是在此时间之前,这个token是无效的。

  • admin (boolean) - 如果设置为"true",那么用这个token认证过的客户端将获得管理员权限,规则表达式不会对admin权限的客户端生效. admin权限的客户端拥有对所有数据的读写权限。

下面是设置options的示例代码:

use Wilddog\Token\CustomTokenGenerator;

$generator = new CustomTokenGenerator('<YOUR_WILDDOG_SECRET>');

// Using setOption()
$token = $generator
    ->setOption('admin', true)
    ->setData(array('uid' => 'exampleID'))
    ->create();

// Using setOptions()
$token = $generator
    ->setOptions(array(
        'admin' => true
    ))
    ->setData(array('uid' => 'exampleID'))
    ->create();

Changelog

2.0.0 - 2016-10-24

  • Initial release

About

Wilddog token generator for php.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages