zoukankan      html  css  js  c++  java
  • Session token vs JWT (JSON web token)

    Session token (传引用)

    • 执行
      • server返回session token,client保存session token到cookie中。
      • 每次请求都带着session token,服务器从相应缓存中取出session id对应的session信息,判断是否可以执行请求。
    • 缺点
      • 当有多个服务器时,要么使用redis这类工具保存session信息,这时redis又有单点的问题。或者session sticky把请求发往同一server。都是在给micro service打补丁。

    JWT (传值)

    • 执行
      • server把详细的信息记录到JWT中(包括header, payload和signature), signature是使用server的secret和(header+payload)生成(md5,sha1,sha256这种),因此只有server能判断JWT的真伪。
      • server把JWT返回client,下一次请求带着JWT,由于JWT中包含必要信息,server可以判断是否执行请求。
    • 缺点
      • JWT的header和payload只是BASE64封装,相当于明文,因此不适合传递机密信息。(只能用于https这样的加密通道)
      • JWT可以防止篡改,但不能防止JWT被盗用(session token也不能)。
      • 如果JWT被盗用,又必须使用黑名单的方式来打补丁,而这个黑名单又要使用redis这类工具,那么单点问题又出来了。

    session管理可以通过检查session的lastupdated值和timeout机制把idle的session踢掉,下一次同一个session token过来,因为找不到对应的session,就可以redirect到登陆页面。
    而JWT,server根本就不管,server无法判断这个请求是否过期。

    --------------------------- 知道的更多,不知道的也更多 ---------------------------
  • 相关阅读:
    poj-2376 Cleaning Shifts (排序+贪心)
    AOJ 0525
    POJ -3050 Hopscotch
    POJ-2718 Smallest Difference
    AOJ 0121: Seven Puzzle (BFS DP STL 逆向推理)(转载)
    POJ-3187 Backward Digit Sums (暴力枚举)
    POJ-3669 Meteor Shower(bfs)
    分布式消息系统Kafka初步
    nginx源码学习----内存池
    def文件格式
  • 原文地址:https://www.cnblogs.com/mryux/p/15367097.html
Copyright © 2011-2022 走看看