范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

带你搞懂,为什么淘宝京东等使用不需要每次都登录?

  背景
  现如今,人人有手机,手机皆为苹果安卓等智能手机;
  现如今,人人爱网购,网购皆为淘宝京东等电商平台。
  喜欢网购的你是否发现,下载好淘宝京东,只要你时不时的用一下它,就不用登录了。
  这是为什么呢?
  从技术的角度而言,当用户在一定的时间内使用过该平台就可以不用再次登录,但一定要注意的是首次肯定得登录,如果用户超过一定的时间没有使用,就必须得重新登录,这种方式我们将它称之为双token。 流程示意图
  具体说明如下: 1.根据需要下载软件,完成注册账户 2.登录账户,后端返回 两个token信息,分别为 access_token 以及 refresh_token,access_token称之为短token,refresh_token称之为长token 3.短token也就是access_token未过期,所有的请求一切都正常,用户需要什么数据就返回什么数据 4.access_token 过期,服务端返回一个状态码给客户端,客户端接收到该状态码之后,使用refresh_token重新获取一次新的 access_token 和 refresh_token,相当于重置token 5.如果在refresh_token有效期中没有使用过该软件,意味着refresh_token过期,使用它获取新的 access_token 和 refresh_token 时会返回新的一个状态码,提示用户必须登录
  有的人可能会有这样的疑问: 为什么在使用 refresh_token 时要返回新的access_token 和 refresh_token,而不是延长 原来的 refresh_token 有效期? 为了安全,如果一旦 refresh_token 被黑客等人员截获到,他们就一直可以非法使用你的账号 即使一旦被截获,只要用户这边刷新就会重新获取到新的 refresh_token,那么以前的 被截获的 refresh_token 就会失效 token的时间设置
  token的时间设置需要看需求进行划分区别设置: PC网络应用
  对于网络应用程序而言,由于token可以直接直观地获取到,因此不管是accessToken还是refreshToken为了安全起见,其过期时间都不应该设置得很长,且需要不停地更换token,因此PC网络应用的accessToken一般设置为2h过期,而refreshToken设置为1天到2天比较好,不足1天也是可以的,如果设置的时间比较短就在活跃期间时常刷新freshToken就好了,如果设置的时间比较长,就只需要设置一个阈值(比如7day的refreshToken设置一个6day阈值),在refreshToken小于等于这个阈值的时候就进行刷新refreshToken就好了。 手机应用
  对于手机APP应用而言,登录操作一般只做一次,因此token的过期时间必是无限,即不会过期,不过为了安全起见(比如防止你丢手机),token应该以某种程度上对用户可见(比如在安全中心里检验了身份之后可以让你看到哪些设备有token,即哪些设备会被允许登录)并可让用户对其进行一定程度上的操作(比如你手机丢了,然后登录安全中心移除那个手机的token,也就是移除那个手机的登陆权限,从而使那个手机的应用上的你的帐号强制下线) 无效的Token的处理
  对于频繁更换的Token,如何处理旧的未过期的而又无效的Token,以下提供了几个思路:
  1)  简单地从浏览器中移除token就好了
  显然,这种方式对于服务器方面的安全而言并没有什么卵用,但它能通过移除存在的token来阻止攻击者(比如,攻击者必须在用户下线之前窃取到token)
  2) 制作一张token黑/白名单
  在移除了浏览器存储的token后如果还想要再严格点,就只能在服务器上制作一张已经无效但是没过期的token的黑/白名单了,在每次请求中都操作数据库进行token的匹配,并以某种方式进行维护(不管是黑名单的定期删除维护也好,白名单的无效时删除也好),不过显然这种方式还是违背了token无状态的初衷,但是除此之外也没别的办法。
  存储可以按照userId—token的方式存储在数据库中(当然也可以按你喜欢添加其他字段标明其他信息,比如说mac地址啦,是手机还是电脑啦,设备型号啦,巴拉巴拉巴拉····),白名单的话直接存储有效的token,在需要token无效的逻辑中删除指定token即可(比如刷新token的时候把旧的无效的但未过期的删掉)。而如果是黑名单的话就需要你定期去删除其中已经过期的token了。
  而验证的话除了要去数据库名单里匹配之外还需要验证token本身的有效性。
  3)只需要将token的过期时间设置的足够短就行了 如何刷新Token(引用自github)static refreshToken = (token): string => {     let optionKeys = ["iat", "exp", "iss", "sub"];     let newToken;     let obj = {};      let now = Math.floor(Date.now()/1000);     let timeToExpire = (token["exp"] - now);      if (timeToExpire < (60 * 60)) { //1h         for (let key in token) {             if (optionKeys.indexOf(key) === -1) {                 obj[key] = token[key];             }         }          let options = {             expiresIn: "7 days",             issuer: "moi",             subject: token.sub,             algorithm: "HS256"         };          newToken = JWT.sign(obj, Config.get("/jwtSecret"), options);     }     else {         newToken = "";  //no need to refresh, do what you want here.     }      return newToken; }刷新refresh Token的另一种思路(官网)/**  * Example to refresh tokens using https://github.com/auth0/node-jsonwebtoken  * It was requested to be introduced at as part of the jsonwebtoken library,  * since we feel it does not add too much value but it will add code to mantain  * we won"t include it.  *  * I create this gist just to help those who want to auto-refresh JWTs.  */const jwt = require("jsonwebtoken");  function TokenGenerator (secretOrPrivateKey, secretOrPublicKey, options) {   this.secretOrPrivateKey = secretOrPrivateKey;   this.secretOrPublicKey = secretOrPublicKey;   this.options = options; //algorithm + keyid + noTimestamp + expiresIn + notBefore }  TokenGenerator.prototype.sign = function(payload, signOptions) {   const jwtSignOptions = Object.assign({}, signOptions, this.options);   return jwt.sign(payload, this.secretOrPrivateKey, jwtSignOptions); }  // refreshOptions.verify = options you would use with verify function // refreshOptions.jwtid = contains the id for the new token TokenGenerator.prototype.refresh = function(token, refreshOptions) {   const payload = jwt.verify(token, this.secretOrPublicKey, refreshOptions.verify);   delete payload.iat;   delete payload.exp;   delete payload.nbf;   delete payload.jti; //We are generating a new token, if you are using jwtid during signing, pass it in refreshOptions   const jwtSignOptions = Object.assign({ }, this.options, { jwtid: refreshOptions.jwtid });   // The first signing converted all needed options into claims, they are already in the payload   return jwt.sign(payload, this.secretOrPrivateKey, jwtSignOptions); }  module.exports = TokenGenerator;
  测试模块: /**  * Just few lines to test the behavior.  */  const TokenGenerator = require("./token-generator"); const jwt = require("jsonwebtoken");  const tokenGenerator = new TokenGenerator("a", "a", { algorithm: "HS256", keyid: "1", noTimestamp: false, expiresIn: "2m", notBefore: "2s" }) token = tokenGenerator.sign({ myclaim: "something" }, { audience: "myaud", issuer: "myissuer", jwtid: "1", subject: "user" }) setTimeout(function () {   token2 = tokenGenerator.refresh(token, { verify: { audience: "myaud", issuer: "myissuer" }, jwtid: "2" })   console.log(jwt.decode(token, { complete: true }))   console.log(jwt.decode(token2, { complete: true })) }, 3000)
  来源:https://mp.weixin.qq.com/s/gt7T5nghTUN2alR10TIinA

屏下摄像头中兴将首发维信诺量产新方案,其他品牌新机即将上市去年9月,维信诺与中兴合作,推出了全球首款拥有屏下摄像头技术的手机中兴A205G,使得屏下摄像头技术变得愈发受关注起来。其实,屏下摄像技术就是通过改变手机显示屏结构,使光线得以透过官宣!火山引擎品牌发布会将于6月10日举行,这些嘉宾要出席近日,字节跳动旗下面向企业服务的智能科技品牌火山引擎在官网公布了品牌发布会的会议日程等详细信息。据了解,这是该公司首个ToB产品和成果展,此次会议除了字节跳动和火山引擎高层外,也邀比尔盖茨离婚背后有惊天大瓜?这一女一男将影响1300亿财产分割?热点解读比尔盖茨离婚背后或有惊天大瓜?这一女一男或将影响1300亿财产分割?截止发稿时,微软公司联合创始人比尔盖茨和妻子梅琳达离婚案又有新进展,2人分别组建律师天团,分割1300亿上市光环难掩京东物流的阿喀琉斯之踵来源疾风财经作者木子编辑平行本文约2772字,阅读时长约9分钟2007年,当刘强东豪掷10亿自建京东物流,另一位电商大佬曾发出京东将来会成为悲剧的著名论断。14年后的今天,京东物流周小川数字人民币没想要取代美元和第三方支付新华社北京5月24日电(中国证券报记者倪铭娅)数字人民币相关话题受到持续关注。中国金融学会会长清华大学五道口金融学院名誉院长周小川日前在2021清华五道口全球金融论坛上回应了近期关互联网项目虚假宣传哪家强?GEC环保币当仁不让第一个问题为了利益毫无底线的虚假宣传假的除了他骗你是真的,其他都是假的,假的永远成不了真的,但假的事物会有千千万万表象,稍有不慎就会被迷惑。GEC环保币作为一款涉及传销的空气币,随通往电动汽车Tier1的路上华为比大疆们多了一张底牌内容转自集微网今年上海车展上最出风头的不是造车新势力,而是想成为Tier1的科技巨头们。这边,无人机之王大疆一口气就推出了智能驾驶D80D80等三款解决方案那边,采用华为技术的赛力4月骤降75。3Model3销量暴跌后特斯拉在国内还能否再续辉煌?在我国,有一句成语,叫做成也萧何,败也萧何。这八个字,是对汉初三杰之一战神韩信一生的总结概括。如果没有萧何月下追韩信,然后极力想刘邦举荐韩信,无论如何刘邦也不可能拜韩信为大将军,统半入耳也降噪,华为freebuds4定制属于自己的安静时隔两年之后,华为终于发布了升级款的半入耳降噪真无线蓝牙旗舰耳机华为freebuds4。毫无疑问的说,这款耳机我期待好久。作为freebuds3老用户,看到了这两年华为在真无线耳机预算只有399的穷逼学生,能买什么游戏机?赶紧入手一个吧,绝逼带你起飞,那画质,那声效,那操作的手感,绝对让你欲罢不能,9块9你买不了吃亏买不了上当,但你可以买到一个万众瞩目的机会,你想象一下,当你坐地铁时,别人都是千篇一数字人民币拉新大战企业客户难推广曹韵仪4月预热5月高潮6月延续,上海第二届五五购物节仍在火热进行中,数字人民币试点成为一大亮点。越来越多的商铺和群众已开通数字人民币钱包,率先享受到数字人民币的新奇体验。不过,国际
关于Tiktok,谈谈美国在害怕什么关于美国封杀Tiktok的过程,网上已经说的够多,这里不再赘述。这里我们深入分析一下,美国到底在担心什么?其实这里主要有两个方面第一个是美国财团,第二个是美国政府。我们先说下美国财苹果WWDC2020看点,你想要的全都在这里了先介绍下苹果WWDC。WWDC,英文全称是WorldwideDevelopersConference,即全球开发者大会。WWDC每年由苹果公司定期在美国举办,召开大会目的主要是向开Airpods耳机都能爆炸?我书读的少,不要骗我说起电子产品爆炸,大家第一个想到的,肯定是三星手机。之前三星Note7全球范围内自燃爆炸,也是导致三星手机在国内溃败的导火索。手机爆炸现在已经不叫新闻了,近日在郑州,竟然还出现了耳索尼发明可穿戴空调?对不起,又是智商税的产品炎炎夏日,避暑的好手段除了吃雪糕,舔冰棒外。最舒服的,莫过于在空调房里待着了。有没有幻想着,有一天能将空调带在身上,走哪儿凉快到哪儿?喜欢发明黑科技的索尼就想鼓捣这么一个东西。20打工人自愿降薪后,内心普遍真实高兴满意怪事年年有,今年特别多。前有互联网公司统计拉屎时长,后有科技企业推出早上微笑打卡的套路。现在是没有底线,只有不断试探打工人的下限。现有广州多益网络给员工降薪后,说员工内心普遍真实高那些年,我们一起走过的95xxx套路曾几何时,95xxx号码都是银行之类的正规公司使用。比如中行服务热线95566,京东服务热线950618等。这也经常让人引入一种错觉95xxx拨过来的号码,都是正规大公司打过来的电遭遇美国封杀,腾讯会跪滑吗继Tiktok被老美收拾后,特朗普又盯上了腾讯。特朗普颁布了最新的命令将在45天(也就是9月20日)后,禁止美国的个人和企业与腾讯进行和微信有关的任何交易。行政命令部分如下,英文不打工人,在公司别想带薪拉屎了前两天,网上被快手公司的一张图刷屏了。这是什么呢?这叫蹲坑计时器,能够记录你在厕所里蹲坑蹲了多久。此图一出,广大程序员同志觉得自己有被冒犯到咋滴,上个厕所还要记个时啊?不允许我带薪iPhone12发布,值得买吗?万众瞩目的iPhone12发布会还是在10月14日召开了。其实早在数月前,各种媒体和渠道就不停的放出iPhone12的各种猜测。不错,没有惊喜,所有的猜测最终的都变成了现实。只不过揭秘手机厂家为什么热衷建线下旗舰店最近,华为最大旗舰店在上海开业了。也是壕无人性。位置自然是上海最繁华的南京东路,而且是独栋的南京大楼,具有82年历史的保护建筑。华为对大楼进行了重新装修和设计,整个营业面积将近50上班的心情像上坟?公司门都不让你进前段时间,佳能中国发布了一项智能办公解决方案佳创空间。基于其笑脸识别技术,能够实现笑脸考勤门禁笑脸预约会议室笑脸访客登记笑脸测温和笑脸打印。简单来说,笑脸考勤是啥意思呢?就是上班打