zoukankan      html  css  js  c++  java
  • netcore 版本升级 导致的cookie验证失败

    排查了两天的问题,本来都是运行正常的cookie验证,突然不好用了,服务器获取不到cookie信息。

    我确实是升级了.netcore sdk,之前是2.2.102,后来升级成了2.2.107,一开始并没有意识到直接卸载新版本进行调试,

    只是想看看问题出在哪?

    首先是打印出来服务器段写入的cookie信息:

    1         "Set-Cookie": "[.AspNetCore.loginvalidate=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/, .AspNetCore.loginvalidate=xxxxxxx; expires=Tue, 03 Dec 2019 13:58:33 GMT; path=/; samesite=none]",

    没看出什么问题,然后我在HttpContext.SignInAsync 方法下面又自己伪造了一个cookie信息写入,

    HttpContext.Response.Cookies.Append(".AspNetCore.loginvalidate", "xxxxx"),注意xxx是真实的登录信息,我拷贝过来的,这次竟然登录成功了,问题

    就应该出在后面的参数里 

    expires=Tue, 03 Dec 2019 13:58:33 GMT; path=/; samesite=none
    最后经过调试发现有samesite=none 就会出问题,但是cookie信息也不能靠手动去编辑,最后我把新版本的sdk删掉,然后重启,再回写的cookie信息就没有
    samesite=none,两个sdk版本对cookie的处理有了差异。

    问题又来了,加上
    samesite=none 其实并不应该有问题,本身已经说明了不进行samesite的限制,问题还是出现在终端调用的代码上,因为用PC端进行登录就一直没有问题,
    而我的手机端使用的是uniapp的 uni.request进行api调用,android的手机cookie信息存在
    samesite=none就无法通过cookie验证,而ios又不存在这个问题,是不是uniapp的一个坑,回头我得去提一下issue,先记录这些

  • 相关阅读:
    Node自动重启工具 nodemon
    centos 集群
    kettle操作数据库增删改
    Dinic
    vim
    mermaid简介
    联赛模拟测试32
    检讨书模板
    博客园如何添加看板娘!
    手机浏览器如何调试
  • 原文地址:https://www.cnblogs.com/wanglg/p/11969149.html
Copyright © 2011-2022 走看看