Angular&Symfony:为什么我们应该使用令牌系统进行身份验证?



我正在研究一个将Angular作为前端和Symfony作为后端的项目,目前我正在使用令牌系统进行身份验证,并且众所周知,这些步骤是:

  • 为后端提供用户名和密码
  • 生成令牌
  • 使用localStorage
  • 保存客户端
  • 每次将请求发送到后端
  • 时,检查令牌是否已过期并刷新它

为了实现这一目标,我必须安装三个捆绑包:
-LexikjwtauthenticationBundle:用于创建令牌系统
-JwtrefreshtokenBundle:用于清爽令牌系统
-Nelmiocorsbundle:使用CORS请求

所以我的问题是,当我们可以使用Symfony的默认身份验证系统时,我们为什么要使用这些内容?!
如果我错了
请纠正我我们可以简单地使用这些步骤,而不安装任何其他捆绑包:

  • 为后端提供用户名和密码
  • 使用Symfony的默认身份验证系统对用户进行身份验证(of配置防火墙后(
  • 每次我们在控制器中发送请求时,我们都可以检查是否用户使用此Methode $this->getUser();记录(将如果未连接null(

对于CORS请求,我们可以简单地使用标题array('Access-Control-Allow-Origin'=> '*')创建一个自定义响应:

class APIResponse extends Response
{
    function __construct($content, $status = 201, array $headers = array('Access-Control-Allow-Origin' => '*', 'Content-Type' => 'application/json'))
    {
        if(is_array($content)) parent::__construct(json_encode($content), $status, $headers);
        else throw new LogicException('The response must be an array, '.gettype($content).' given');
    }
}

这只是一个想法,希望你们指向我的方向正确,并解释为什么我们应该在Symfony的默认身份验证系统上使用令牌。

您不能告诉您必须使用特定的解决方案。您可以选择想要的任何东西。

JWT最近真的很流行。很高兴知道JWT的工作原理。但是您不必使用JWT样式授权。

JWT对于拥有一千个注册用户的大型系统确实很强大,因为可以减少数据库使用(减少查询数(。这是因为令牌处理从Serwer侧移到客户端。

对于较小的系统,我更喜欢使用API-KEYS,会话令牌等。就像您写的一样

相关内容

最新更新