开发概念总结(持续记录中...)

#写在开头

无论是写文章,还是摘录文章,都是一个梳理思维,学习成长的过程,当忘记了还可以回来翻一下,看一看,或者有什么新的想法可以重新编辑一下,方便了自己,也分享了知识,有意的可以一块学习,互相交流。谢谢大家!有错误或者意见还请指出共同进步。

1. token总结

token总结

无论是做什么开发的,都会接触到!!!

token介绍:

  1. token值,又叫登录令牌!主要是用来判断当前用户的登录状态。

  2. token值得特点:是一个字符串/大整数,只需要保证唯一性。 是服务器根据用户信息(账号、密码、身份认证机制(电话号、身份证号、支付宝账号、银行卡信息…)来生成的用户表示信息。

  3. token值获取:当用户首次登录成功时,服务端就会生成一个token值。
    1.会在服务器保存token值(保存在数据库)
    客户端拿到token值后,一般保存在两个位置
    1.将token保存在cookie中;
    2.将token保存在私有文件等等中,作为一个公共参数传递(这个情况比较多)

  4. 公共参数:每一个网络请求都需要参数!一般公共参数有很多都是“可选”参数! 公共参数附带的越多,越利于后台监测用户,数据挖掘会使用到监测到的数据。

  5. 以后客户端再次发送网络请求(一般不是登录请求)的时候,就会将这个token发送到服务器。 服务器收到客户端请求之后会取出token值与保存在本地的token值做对比。
    1.如果两个token值相同:说明用户登录成功过!当前用户处于登录状态!
    2.如果两个token值不同:说明原来的登录信息已经失效,让用户重新登录

  6. 关于token值失效问题:
    1.token值时间失效
    1.1如果App是新闻类、游戏类、聊天类等需要长时间的用户粘性,一般可以设置1年的有效时间
    1.2如果用户是支付类、银行类。一般token只得有小时间比较短15分钟左右。
    2.token值用来做设备唯一性判断! 每次登录之后,无论用户名是否改变,只要调用登录接口并且登录成功, 都会在服务器生成新的token值,原来的token值就会失效! 例如:打车软件类

###多设备登录

如果允许多台设备同时登录,并且可以设置最大登录的数量的时候。例如QQ:允许在电脑端登录,QQ手机端登录,QQ网页端登录

如果超出这三个端,想要在另外一个相同的端登录,需要使对应的端token失效,来保证一个端一个账号只能登录一次。

可以设置多个token根据登录端不同,来监测token是否过期。根据登录的数量可以判断最大支持多少个设备同时登录。

问题与解决

Token,正常情况下过期的时间很长。一般为7天,但是项目需求如果是token半个小时过期,这就会面临着很多问题。前段基本上是无法处理的,或是很麻烦。甚是不好解决。

目前解决:后台加一个触发器,或是token值改成7天,当token值过期时,后台出一个接口,让用户退出登录,重新手动登录

###我们后台对token的认识

服务器如果是分布式系统

必须需要token:因为app需要到登录服务器上登录,然后到应用服务器去获取数据,这里涉及到不同的服务器,那么不同服务器对应到该app客户端的sessionId肯定不一样,app不像浏览器那么强大,管理不同域下的sessionId都很方便,这时app肯定希望有一个统一的sessionId,那就是token,方便访问不同的服务器。同时应用服务器需要校验当前app是否登录,于是要到登录服务器上去询问,询问时总要带个app的凭证,于是需要一个token,这个token是登录服务器给app的,应用服务器拿着这个token去询问登录服务器,登录服务器校验该token后,就会告知应用服务器当前app是否合法(在我这里登录过),然后应用服务器才能放心的把数据返回给app。单点登录服务器与应用服务器,与客户端的交互,便可体现token的用法了。

####服务器为单一服务器

如果应用服务器同时带登录功能,那么完全可以不必搞个token出来,就沿用sessionId就可以了。如果app非要token,那么可以修改server.xml,把默认JSESSIONID改成token。

####联想:
我们会看到第三方服务接口,如新浪微博,都需要带上一个access_token,实际新浪微博就相当于一个第三方登录系统,而且新浪微博后面会有多个分布式系统,系统与系统之间交互肯定需要token,那么新浪微博就会要求客户端带上access_token,而这个access_token是可以通过新浪微博接口获取的,每获取一次,access_token会改变,看来这个access_token就像一个sessionId,可以重置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值