目前淘宝开放平台的权限2016年就停止申请了,各位开发同学在日常开发的时候,可能面临着想要拉取订单或者上传商品却没有权限的情况,本人于2012年申请的权限,进销存的。可以拉取定单手机号,上传商品等。需要的可以站内信或者评论区。
==========================以下是分割线
HttpContext.SignInAsync 失效(表面解决了问题,未深入到.net core 源码去找问题,记录一下,等有时间翻一下.net core 源码试试能不能找到根本原因)
今天在弄 identityServer4 项目的时候,发现好好的登录竟然没用了。
各种跟踪后发现是 HttpContext.SignInAsync 这个方法不写cookies了
原本经过这个方法后,会写入 idsrv和idsrv.session 两个cookies的。
搜索资料后发现简书上有人和我一样的问题
链接如下 https://www.jianshu.com/p/30089845b172
然后我也跟着一样清理了浏览器缓存等数据,也好了。所以这是为什么?
先记录一下解决问题,回头看下.net core 源码看看它是怎么工作的。
我记得出现这个问题的原因是:
我将id4中的 app.UseHttpsRedirection(); 这行代码给注释掉了,首先我没注释前,用它登录过,成功能写cookies
后来我因为开发环境懒得搞证书什么的,就先注释了这句,结果再去登录就写不上cookies了。
先记录问题。我的.net core 版本是 3.1,如果有人知道麻烦评论区告知一下。谢谢
===============================
20201030
因为某些原因,这个项目很久没搞,然后过了2 个月后,跑回来继续弄这个项目,又发现问题,又是控制台报
Showing login: User is not authenticated
我以为又是和上次一样的问题,又想着先清理缓存试试,结果发现怎么清理缓存都没用。
然后又开始搜资料,发现了一个人提问和我很像,链接如下,英文的:https://www.e-learn.cn/topic/3672478
我英文也是弱鸡,大概意思是说:
如果用http协议+chrome浏览器(我用的edge最新版,edge也是chromeium核心的吧),如果是http协议+chrome浏览器,会拒绝 SameSite=none 的cookie。
所以,造成了id4无法写入cookie,然后导致一直报这个错误(id4写的cookieSameSite属性=none)
怎么解决,一般推荐用https(我是直接在vs里面启用https来测试的,一起用https就可以登陆了,然后马上了更新了一下这篇文章,我记性差,怕下次遇到又忘记)
也可以修改cookie策略
app.UseCookiePolicy(new CookiePolicyOptions { MinimumSameSitePolicy = SameSiteMode.Lax }); 加入这句代码修改cookie策略(我不知道这么做是否会影响id4功能,我随意测试了一下没有影响,没仔细测。)
推荐还是启用https吧,开发时候我就修改这个策略,上线我还是用https来吧。
记录一下过程,提醒自己。
说起来你们可能不信,我都忘记我写了这篇文章,刚刚登录不上去我又是搜索 HttpContext.SignInAsync 失效,然后找到自己的文章的。。。。。
=====20201031