snawoot / php-storageless-sessions
使用加密和HMAC签名的cookie进行无存储会话
1.4.2
2017-04-03 17:23 UTC
Requires
- php: >=5.4.0
- ext-hash: *
- ext-openssl: *
Requires (Dev)
- phpunit/phpunit: ^5.0||^4.8
README
会话处理器,将会话数据存储在HMAC签名和加密的cookie中。
❤️ ❤️ ❤️
您可以通过向以下钱包捐款来向作者表示感谢
- ETH:
0xB71250010e8beC90C5f9ddF408251eBA9dD7320e - BTC
- 旧版:
1N89PRvG1CSsUk9sxKwBwudN6TjTPQ1N8a - Segwit:
bc1qc0hcyxc000qf0ketv4r44ld7dlgmmu73rtlntw
- 旧版:
需求
- PHP 5.4.0 或更高版本
- OpenSSL 扩展(默认内置)
- 哈希扩展(默认内置)
- 启用输出缓冲(
output_buffering=1或output_buffering=On在 php.ini 中)
用法
纯PHP
<?php $secret = "reallylongsecretplease"; $handler = new VladislavYarmak\StoragelessSession\CryptoCookieSessionHandler($secret); session_set_save_handler($handler, true); session_start(); $_SESSION["key"] = "value";
Symfony
framework: session: handler_id: session.handler.cookie services: session.handler.cookie: class: VladislavYarmak\StoragelessSession\CryptoCookieSessionHandler public: true arguments: ['reallylongsecretplease']
处理器构造函数参数
CryptoCookieSessionHandler($secret, $expire = 2592000, $digest_algo = "sha256", $cipher_algo = "aes-256-cbc", $cipher_keylen = 32)
$secret- 用于HMAC签名和加密的密钥短语$expire- HMAC签名的过期时间$digest_algo- 用于密钥派生和cookie签名的哈希算法。有关所有可用的消息摘要算法,请参阅hash_algos()。$cipher_algo- 用于会话内容加密的加密算法。有关所有可用的加密算法,请参阅openssl_get_cipher_methods()。$cipher_keylen- 指定加密算法的正确密钥长度,用于加密密钥派生