roave/roave-nonce-utility

此包已被废弃且不再维护。未建议替代包。
此包最新版本(2.0.0)没有可用的许可证信息。

处理非ces的实用组件

安装: 4,607

依赖项: 0

建议者: 0

安全: 0

星标: 5

关注者: 6

分支: 2

开放问题: 1

类型:模块

2.0.0 2019-01-28 18:03 UTC

This package is auto-updated.

Last update: 2022-11-29 01:54:32 UTC


README

Build Status Scrutinizer Code Quality Build Status

一个帮助管理非ces的简单模块

使用此模块假定您已安装并配置了此处提供的DoctrineModule http://github.com/doctrine/DoctrineModule

安装

通过将模块添加到您的composer文件中安装模块

php composer.phar require roave/roave-nonce-utility:~2.0.0

之后,您必须通过将 Roave\NonceUtility 添加到您的 application.config.php 中来启用模块,通常位于应用程序根目录中的 config 目录。

现在您需要为您选择的对象管理器添加一个别名 Roave\NonceUtility\ObjectManager

这是大多数 ORM 用户的标准配置

'service_manager' => [
  'aliases' => [
    'Roave\NonceUtility\ObjectManager' => 'Doctrine\ORM\EntityManager'
  ]
]

最后一步是为我们的接口添加一个实体解析器到doctrine配置,并让该类实现NonceOwnerInterface

同样适用于大多数标准 ORM 用户

'doctrine' => [
  'entity_resolver' => array(
    'orm_default' => array(
      'resolvers' => [
        NonceOwnerInterface::class => AbstractUserEntity::class,
      ]
    ]
  ]
]

非ces所有者实体类

abstract class AbstractUser implements NonceOwnerInterface
{
  public function getId()
  {
    // Return your unique identifier.....
  }
}

使用

要使用此模块,您只需从服务定位器获取nonce服务

$service = $serviceLocator->get(NonceService::class);

服务接口在此内联

interface NonceServiceInterface
{
    /**
     * Create a new nonce
     *
     * @param NonceOwnerInterface $owner
     * @param string              $namespace
     * @param DateInterval|null   $expiresIn
     * @param integer             $length
     *
     * @return NonceEntity
     */
    public function createNonce(NonceOwnerInterface $owner, $namespace = 'default', DateInterval $expiresIn = null, $length = 10);

    /**
     * Consume a nonce
     *
     * @param NonceOwnerInterface $owner
     * @param string              $nonce
     * @param string              $namespace
     * @param RequestInterface    $request
     *
     * @throws Exception\NonceNotFoundException
     * @throws Exception\NonceAlreadyConsumedException
     * @throws Exception\NonceHasExpiredException
     *
     * @return void
     */
    public function consume(NonceOwnerInterface $owner, $nonce, $namespace = 'default', RequestInterface $request = null);
}