aluzed/redis-web-token

dev-master 2017-12-14 15:40 UTC

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} 秘密