请问header中的AccessToken属性和Authorization属性服务器应该如何处理

请问header中的AccessToken属性和Authorization属性服务器应该如何处理,第1张

用到几个都可以.

不叫AccessToken和Authorization也可以.

我给你简单讲下这两个东西是为了做什么吧.

首先这一般用在RESTFUL风格的无状态通讯中.啥意思呢?就是说不用Session这种传统的标记,来表达"用户是谁".用户每一次的请求访问都没有这个session状态的时候.就叫做无状态.

那么没有session之后,服务器怎么知道访问者到底是谁,是哪个账号呢?

那么就需要约定出来一个临时通行证token.

用户在登录页,用账号密码进行登录.然后服务器临时生成一个token或者AccessToken或者Authorization再或者lalalademaxiya,随便你叫什么名字,你只需要知道这个东西就是一个临时的身份z明就可以了.

然后用户后续的请求访问,就带上这个临时证明,(不能每次访问都传账号密码,太不安全了,所以采用临时身份z).

服务器收到请求后,从请求头里面拿出token,或者你这个AccessToken,都可以,看你叫什么名字.再从自己的内存队列中查询,是否包含这个token,以及这个token对应哪个User.在决定这个用户能做什么,后续业务怎么进行.

(一般这种情况我们放在拦截器里面做,拦截器拦截所有http请求,然后取出里面的token,username等鉴权信息,去缓存查看,是不是自己的用户,是就放行,不是就打回去)

不知道我说清楚没有.

总之这个东西就是拿来做临时身份z明的.用户登录成功,你随机生成一个不重复的字符串乱码token,然后将token:user作为键值对存入在线缓存.

然后前端发请求时,在Header里面加上token,后端收到,去在线缓存里找,是否有token对应的user.没有就不处理.你也可以给token设置有效期30分钟什么的,然后线程去循环,定期删除过期的token,然后用户就需要重新登录获取新的token.

至于"两个都要用到么?",这个问题,看你怎么想了,你觉得光一个token不太安全,那么你就再加一个username在Header里面.收到请求后,不光检查是否有对应的token,还要看token对应的user里面的username和你Header发过来的username是否吻合.

主要是光一个token也不太安全,一般我们请求都是账号密码这种,双字段验证.token也可以搭配一个别的东西来验证.就像我说的,你搭配一个username.或者你觉得两个不够,你再多加几个字段.或者你觉得一个token就够了,不加也行.如果你觉得一个字段做安全认证的风险你也能接受,那就用一个.都没有硬性规定.全是码农们自我设计,自我感觉用几个比较合适.

但是我一般习惯使用username+token的形式来验证.

不知道能不能帮到你,还有疑问可以继续追问.

注意:以下只是方法过程,具体变量参数得根据你们自己实际

import requests #导入包

header= {'Authorization':self.token}  #在头信息中添加token

param = {'productId':617,'currentUserId':1143}#这里是接口要传的参数,我用字典传

response = requests.post(self.url_add_Record,params=param,headers=header,)  #发送requests接口请求将url、params、heads传进去

res = response.json()#返回的response转化成json串

print(res) #打印res


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11501617.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存