1、基于 session 的鉴权机制
传统的访问鉴权机制,用户登录完成后,用户信息存放于服务端的 session 中,客户端 cookie 中存储 session id,每次请求会带上 cookie,从而服务端可以通过 session id 获取服务端 session 的用户信息,从而进行验证。
这个模式问题在于服务器是集群或者跨域的服务导向架构,就需要 session 数据共享,每台服务器都要能够读取 session。
解决方式有集中话管理 session 数据,如持久话 session 数据或者 redis 缓存 session 数据。各服务都从持久话服务或 redis 缓存中获取 session。
当然你也可以通过将 session 数据加密然后都存储在 cookie 中(客户端),每次请求过来时,解密这个请求带过来的 cookie 数据,获取到具体的 session 数据,这样可以解决服务集群 session 无法
共享的问题,但无法解决跨域的问题。flask session 默认就是采用这种方式,session 信息加密存储在客户端 cookie 中。
session 这种机制不完全适用于使用 api 调用的应用的 api 服务鉴权。
2、基于 token 的鉴权机制
token 机制,本质即是将原先 cookie 存放 session id,服务端根据每次请求获取的 cookie 中 session id,找到服务端中存储的对应 session 信息的方式,改为 http 请求需要手动传输 token (正确登录后给予的令牌),服务端根据 token 获取用户的信息,完成鉴权。
这种方式适用一切应用&