Angular / NodeJs Webapp,JWT Auth或Session Auth?

时间:2018-11-23 12:35:13

标签: angularjs node.js session authentication jwt

对于Webapp,哪种身份验证?优点/缺点?

对于我们计划使用Angular的FE,该应用程序应该是一个Web应用程序;对于BE我们计划使用NodeJS的应用程序应为web应用。 根据用户的角色,该应用将具有公共路线和私人路线,我们还计划开发Android和iOS应用。

我看到有两种方法:

  • JSON Web令牌
  • 会话

我读了一些不推荐JWT而不是Session的帖子。

一些考虑:

JWT

缺点

  • 需要服务器端检查以使某些令牌无效(因此该方法不是闲话)
  • 用户信息:如果我将它们放入有效负载中,可能会产生沉重的标头,并且如果用户信息发生变化(即角色),我需要更改令牌(并使前一个令牌无效)。如果我仅在有效负载中使用用户ID,则每次都必须从数据库或缓存系统(即Redis)中加载。

pro

  • 带有JWT Auth的API似乎很容易通过Web或本地移动应用程序使用

会话(即与Redis进行Express会话)

缺点

  • session使用会话ID设置了cookie,在移动原生应用中似乎很难使用这种方法。

您能确认或添加其他优点/缺点并提出最佳方法吗?

使用Socket.io(带有服务器会话/缓存)代替REST API可以有效替代以前的方法吗?

0 个答案:

没有答案