如何在 Symfony 3.4 中生成令牌
How to generate a Token in Symfony 3.4
我将 symfony 2.7 更新到 symfony 3.4。
我在 Symfony 2.7 中使用函数 generateToken() 为文件上传任务创建令牌。我只找到了有关 安全生成随机值的信息
用于 symfony 3.4。但是我如何整合它呢?
我可以使用以下语句吗?
return bin2hex(random_bytes(32));
我知道这可能会迟到,但希望它能对其他人有所帮助,因为 symfony 没有开箱即用的功能可用于生成令牌。
所以当我 运行 遇到这个问题时我所做的是我使用了与 FOSUserBundle 使用的相同的令牌生成器,它是这样的:
public function generateToken()
{
return rtrim(strtr(base64_encode(random_bytes(32)), '+/', '-_'), '=');
}
https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Util/TokenGenerator.php
正如你所看到的,它使用了官方documentation of symfony combined with the php function base64_encode()
wich is designed to make binary data survive transport through transport layers that are not 8-bit clean, such as mail bodies as explained in the official php documentation and they are using exactiy this example中推荐的random_bytes()
函数。
我将 symfony 2.7 更新到 symfony 3.4。 我在 Symfony 2.7 中使用函数 generateToken() 为文件上传任务创建令牌。我只找到了有关 安全生成随机值的信息 用于 symfony 3.4。但是我如何整合它呢?
我可以使用以下语句吗?
return bin2hex(random_bytes(32));
我知道这可能会迟到,但希望它能对其他人有所帮助,因为 symfony 没有开箱即用的功能可用于生成令牌。
所以当我 运行 遇到这个问题时我所做的是我使用了与 FOSUserBundle 使用的相同的令牌生成器,它是这样的:
public function generateToken()
{
return rtrim(strtr(base64_encode(random_bytes(32)), '+/', '-_'), '=');
}
https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Util/TokenGenerator.php
正如你所看到的,它使用了官方documentation of symfony combined with the php function base64_encode()
wich is designed to make binary data survive transport through transport layers that are not 8-bit clean, such as mail bodies as explained in the official php documentation and they are using exactiy this example中推荐的random_bytes()
函数。