【发布时间】:2018-11-17 16:04:03
【问题描述】:
我搜索了不同的 SO 答案和 GIT 上的 Aspnetcore 身份验证,但没有一个解决方案有帮助。我遇到了“关联失败”的问题,原因是关联 cookie 未设置,即使它明确位于重定向到 Google 的响应标头中。 enter image description here
这是 Fiddler 中的响应:
HTTP/1.1 302 找到 地点:https://accounts.google.com/o/oauth2/v2/auth?response_type=code&client_id=996823962179-1vvr5h2icjroveset9849e8aqdks1g66.apps.googleusercontent.com&redirect_uri=https%3A%2F%2Flocalhost%2Fsignin-google&scope=openid%20profile%20email&state=CfDJ8EGRdEf8M7VDtyNKY6R10TxxM2kHFoDlOBkCQKoMQJXX3QPKcyH8quz80oy8Wd7Rq1Nnb-KhklzrC-XK4WOhikAVtJuFHIk_M4ZvLY8Le2FkjVNxJrHDsZeg7o1sMrABd_md1jxi-LelhURiB54SUAHbaJciseDc5NP897CSsrtYoPt_IWyqNOdxCjPntxwHYUzO2ZxIcfSLaLGu8rWlfHTEqvj_N7KQ0k8HQ8VwPYDXjAMwjjsGRdxR6dOl-vNfzfOqX0wZelvVsX5UIfzMjlCJ20lQxLIhlkhkpne14EYYNkJufqF4ZADD13jvsj4qnw 服务器:红隼 设置 Cookie:.AspNetCore.Correlation.Google.WKzW6di96f3Fbh4ThkfIFHteUvNLusesaT0VjAMhrDU=N; expires=2018 年 11 月 17 日星期六 16:14:20 GMT;路径=/登录-谷歌;安全的;同站点=严格; httponly 设置 Cookie:.AspNetCore.Mvc.CookieTempDataProvider=;到期=格林威治标准时间 1970 年 1 月 1 日星期四 00:00:00;路径=/;安全的;同站点=严格; httponly 日期:格林威治标准时间 2018 年 12 月 28 日星期五 03:45:54 内容长度:0
我已将数据保护设置为将密钥存储到一个位置,并且按预期工作。我的源代码控制在这里: https://github.com/jjkesinger/charts/tree/master/Charts
有什么想法吗?本地机器上的 TLS 和它有什么关系吗?我可以将此项目克隆到另一台机器上,它工作正常。它不工作的机器是 Windows 10 dell experion
【问题讨论】:
-
还下载了示例github.com/aspnet/Security 并得到关联失败错误。相同的行为 - 即使 302 到 google/fb/git 等的标头说 set-header,也不会保留相关 cookie
-
您是否尝试过重置所有浏览器设置? (我的意思是整个交易)。和/或尝试不同的浏览器。无意中更改某些可能导致此问题的设置非常容易。我最近遇到了类似的情况(在我为 localhost 开发启用 https 支持后,chrome 陷入了无限循环),并重置了浏览器设置(所有设置,除了历史缓存;以及过去的所有时间)“修复”了它。
-
最终我的 cookie 政策设置为严格。改为松散,它的工作原理。
-
是的,samesite=strict 与 OAuth 不兼容。
标签: asp.net-core