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, 必须要使用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字节。
可选的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();
- Initial release