• 会话管理1-Token


    会话管理1-Token

    token是什么

    token是服务器根据客户端特征信息生成的一个特征字符串

    token有什么作用

    token的作用类似于session中的sessionid,都是为了服务器判断请求是否来自于同一用户,方便无状态的web服务认证鉴权

    token方式有什么特点

    • 服务端不需要存储有状态的session,客户端不需要cookie
    • 带有一定的会话信息,减少了服务端对数据库的压力
    • 无状态、扩展性好,支持跨域访问、移动和物联网应用
    • 支持签名(加密)算法,防止csrf攻击

    token应用场景

    token主要支持基于web api的多类型用户端、跨平台、分布式微服务、物联网应用

    token整体流程

    1. 客户端拿自己的用户名密码向服务端发起登录请求或者token获取请求
    2. 服务器验证信息是否正确,然后返回一个经过服务器签名的token
    3. 客户端将服务端返回的token缓存到本地留待后用
    4. 客户端带着返回的token与服务端进行后续的交互
    5. 服务端在接收到客户端请求时根据token有效性进行后续处理

    token生成过程(以JWT为例)

    1. 服务端根据客户首次访问的信息生成以后交互需要传递的数据
    2. 服务端将需要传递的数据放入Payload中
    3. 服务端将签名算法alg写入JWT报文头Header中
    4. 服务端用使用alg签名算法和自己的秘钥对Header和Payload生成签名Signature
    5. 将Header、Payload和Signature用点号(.)分隔符连接在一起就是最终生成的JWT

    JWT解决的问题

    1. 服务端不仅可以根据token认证还可以交换一些信息

      服务端解码Token后可以从Payload中获取用户相应的信息

    2. Signature和Header中的alg用来防止token篡改

      服务器解码Token后根据Header中约定的alg算法和自己的私有秘钥重新签名后和原有Signature比对是否一致

    3. 如何保证交换token的安全性

      防止采用http明码传输token,要使用https协议传输,设置有效期(不能从根本上防止别截获,只是在尽量减少截获时候的损失)

  • 相关阅读:
    POJ 2516:Minimum Cost(最小费用流)
    POJ 3436:ACM Computer Factory(最大流记录路径)
    HDU 4280:Island Transport(ISAP模板题)
    连续最短路算法(Successive Shortest Path)(最小费用最大流)
    Dinic算法模板
    POJ 2195:Going Home(最小费用最大流)
    BZOJ-1588 营业额统计
    BZOJ-1054 移动玩具
    BZOJ-2463 谁能赢呢?
    BZOJ-1207 打鼹鼠
  • 原文地址:https://www.cnblogs.com/elfcafe/p/13242493.html
Copyright © 2020-2023  润新知