网络穿透/视频拉转推服务系统EasyNTS上云网关平台使用session+jwt 实现权限认证介绍

对于EasyNTS上云网关平台来说,我们研发时就尽可能降低了其管理方式的复杂程度,没有其他的用户权限,只有管理员权限和一个管理员账号。管理员账号登录需要实现验证,验证之后需要实现接口鉴权方面的操作,所以此时需要浏览器记录到cookie信息,这样才能实现接口鉴权以及登录的验证。

我们的实现方式是将session和jwt配合起来,session用来实现浏览器对cookie的记录。jwt则是用来实现权限token的验证。

j := &JWT{
   []byte("EasyNTD"),
}
claims := Customclaims{
   user,
   password,
   jwt.StandardClaims{
      NotBefore: int64(time.Now().Unix() - 1000), //签名生效时间
      ExpiresAt: int64(time.Now().Unix() + 1800), //签名过期时间 半小时
      Issuer:    "EasyNTD",
   },
}
token, err := j.CreateToken(claims)
if err != nil {
   return token, err
}

JWT与Session都是存储用户信息;然而,Session是在服务器端的,而JWT是在客户端的。Session方式存储用户信息的最大问题在于要占用大量服务器内存,增加服务器的开销。而JWT方式将用户状态分散到了客户端中,可以明显减轻服务端的内存压力。

Session的状态是存储在服务器端,客户端只有session id;而Token的状态是存储在客户端。在EasyNTS的编译中,将两者配合,其特性都可得到一定程度的运用,当然EasyNTS同时进行网络穿透和视频拉转推的设定也可以说是结合了很多便捷高效的编译工具,欢迎关注了解。

原文地址:https://www.cnblogs.com/EasyNVR/p/14628772.html