aluzed / redis-web-token
dev-master
2017-12-14 15:40 UTC
Requires
- php: ^5.3.3 || ^7.0
- predis/predis: ^1.1
Requires (Dev)
- phpunit/phpunit: ^6.5
This package is not auto-updated.
Last update: 2024-10-02 03:33:25 UTC
README
为什么?
为了在多个实例之间共享我们的认证,并使用任何技术,使用RWT将为所有这些提供一些简单性。通过使用第三方组件(redis),我们可以在每个微服务中检查令牌。
---------- ----------------
| redis | <-----| PHP worker |
---------- ----------------
^ ^
| | ---------------------
| ---------| Node instance 1 |
| ---------------------
|
| ---------------------
-------------| Node instance 2 |
---------------------
用法
<?php require "./redis-web-token.php"; use RedisWebToken\RedisWebToken; $rwt = new RedisWebToken([ 'redis' => [ 'scheme' => 'tcp', 'host' => 'localhost', 'port' => 6379, 'prefix' => 'sess:' ], 'custom' => [ 'expire' => (60 * 60 * 4), // 4 hours 'verifyExtendsToken' => true ] ]); // Authenticate $token = $rwt->sign([ 'username' => 'john', 'pasword' => 'doe123', 'age' => 21, 'date' => $dateToStr ], $secretKey, [ 'expire' => 60 * 60 // 1 hour ]); // Verifying token $rwt->verify($token, $secretKey); // Extend token $rwt->extend($token, $secretKey); // Destroy token $rwt->destroy($token, $secretKey); ?>
RWT 参数
当你需要 RWT 时,你应该向该函数传递额外的参数
- {Array} Redis 配置,例如主机、端口、前缀...
- {Array} 自定义 RWT 配置,请参阅选项
RWT 自定义选项
方法
sign
生成 redis 令牌。
参数
- {Object} 用户对象
- {String} 秘密
- {Object} 过期键:自定义过期日期(请注意此值,如果您使用 revive,您的全局过期配置将每次调用 verify 方法时覆盖此值)
### verify
检查令牌是否存活,并返回连接时设置的 User 对象值,如果您在会话期间编辑用户值,那些数据可能已过时。您必须在每次更新用户值时调用 sign 方法。
参数
- {String} 令牌
- {String} 秘密
### extend
使用我们配置中的默认过期值重置令牌的 TTL。
参数
- {String} 令牌
- {String} 秘密
destroy
销毁令牌。
参数
- {String} 令牌
- {String} 秘密