请教一下BuildAdmin生成token和firebase/php-jwt生成的token方式哪个更胜一筹呢?脚本后端问答社区
看了BuildAdmin登录时生成token和登录后得token比对,焦点在这个函数getEncryptedToken
/***
protected function getEncryptedToken(string token): string
{
config = Config::get('buildadmin.token');
return hashhmac(config['algo'], token,config['key']);
}
***/
BuildAdmin 生成token和验证token都是通过buildadmin.php里的'key'和'algo',通过getEncryptedToken这个函数用hash_hmac生成并保存在token表中,
BuildAdmin客户端传过来的token跟token表中的token不一样,但都可以通过getEncryptedToken这个函数再次生成比对,比对一样就表明登录,
这样的做法跟firebase/php-jwt生成的token有什么优劣势呢?
很渴望大神回复一下,谢谢了!
请先登录
JWT
1、一次性,无法修改,无法作废,一旦签发,到期之前始终有效,就这一点,它就不适合后台系统(来个服务器二次验证?那就失去无状态的特性了,何必jwt?)
2、性能影响:它太长,多数请求它会比params和body还要大
3、安全性:没有所谓的额外安全性,payload只是使用了base64编码而已
4、...
终上所述,在后台系统中,无论token方案是怎样的,建议首先放弃使用jwt
- 1
前往