zoukankan      html  css  js  c++  java
  • 记录在苹果6p/6sp,10版本上,app内交互token等用户信息丢失的问题

    一、问题产生背景:

        在app内进入前端页面的时候,会在链接上携带token,以及在window对象全局添加字段,附带所有需要的基础信息,而此次问题就在于,初次进入没有问题,而在苹果6p/6sp,10版本上,调用支付宝app支付后,再返回app内,出现了window对象里所需要的信息丢失的情况,结果从支付返回,就会跳转到登录页面。

    1、排查代码逻辑

    (1)app会在每次重新刷新打开webview页面的时候,往window对象添加所需要的基础信息,经过app抓包,是正常添加的

    (2)前端代码页面,每次页面刷新重载,都会从window对象先取相关信息,没有则从缓存获取,接着又判断window.name值是否有值,有则使用window.name的,最终设置缓存,返回信息。

     (3)通过app协助页面断点,结果发现运行有问题的代码出现在这里,在执行window.carisokConfig = JSON.parse(window.name)之前,一切正常,但是在执行window.carisokConfig = JSON.parse(window.name),发生了错误而执行了catch部分,将需要的基础信息置空了。

     (4)于是排查window.name,发现正常的机子下,断点抓到的window.name值如下:

       而在苹果6p/6sp,10版本这类异常的机子下,断点抓到的window.name值如下:

       很意外,没有代码对window.name进行格式化,也没添加nameStorage,但此处竟然异变了,百思不得其解....

    二、解决思路:

      添加代码,判断window.name值是否带了{},可以被Json.parse,否则将不赋值window.name给window.carisokConfig,防止window.carisokConfig被置空,当然是考虑这样限制不会给其他端,比如需要用到window.name的环境造成影响。

  • 相关阅读:
    Promise小结 ES6异步编程
    XLNet模型
    BERT模型
    Transformer模型
    注意力机制(Attention Mechanism)
    序列到序列模型(seq2seq)
    【Pandas-附件2】查询手册
    【Pandas-附件1】读取excle和csv具体函数
    【pandas-21】实践-同比和环比指标
    【pandas-20】实践(泰坦尼克沉船事件)-特征处理
  • 原文地址:https://www.cnblogs.com/ahao68/p/12170447.html
Copyright © 2011-2022 走看看