做API接口,为什么access_token要放在Header头里传递?

和使用post传比,有什么好处呢?

另外,token每次登录都会改变,那么多端登录是怎么实现的?

阅读 11k
6 个回答

问题1,封装啊,客户端调用接口会把token封装进head
问题2,多端登录,只要在token表里加个app-type字段就可以了,一个终端,一个token互不影响

    1. 如果是OAuth2, 使用 Header传递token是属于规范的一种,Header中有一个Authorization头专门用于存放认证信息
    1. 每一次登录,会生成一个新的Token, 此时旧的token并不会立即失效(取决于该token生成时,设置的失效时间)

参考资料:

没什么特别的好处吧,个人习惯感觉。
多端登录,那只需要一个用户可以有多个token就是了

没有规定不能用post,个人感觉 access_token 放在 Header 里会方便一些吧。
使用POST的话,难道所有API请求都是POST方法?

要实现多端登录,可以每个用户对应多个 access_token ,再在 access_token 表中加一个字段 来区分不同的登录设备。

只要你请求的时候又令牌就行了,这个令牌对应用户的身份,在后端处理的时候获取到这个token,根据token获取用户信息,好比session和cookie,原理是一样的!

token生成后,每个请求都需要带上的。
但没有人规定,所有请求都是用post方法,比如RESTFul,不同的场景用不同的方法,不用header的话,客户端和服务端的处理都很麻烦。

但这也不是绝对,早些年做移动互联网的时候,某些地区的移动网关经常会过滤或改写header,这会带来一些麻烦,如果真有碰到这种情况,就要想其它方式了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题