孙大诚_SunRobin 2024-05-25 14:47 采纳率: 0%
浏览 4

ASP-NET中Oauth2 为什么进行自动跳转了(语言-javascript)

我的项目是一个ASP.NET website, 使用Ouath2进行用户登录。现在有一个关于浏览器端http request跳转的问题。

我这浏览器上一个访问的路径是/resume, 它返回的状态是200,那么浏览器为什么会自动跳转到下一个/callback路径呢?

img

起初我认为/resume应该是返回了一些HTML与Javascript代码,这其中有window.location.href="abc"类似代码。但是发现这个request并没有返回任何内容。那么,它是怎么进行自动跳转了呢?

img

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-25 14:47
    关注

    引自免费微信小程序:皆我百晓生

    在ASP.NET中,OAuth2流程通常涉及多个步骤,包括重定向用户至授权服务器请求授权,然后从授权服务器获取授权码或令牌等。在您的情况下,看起来您正在经历典型的OAuth2流程中的几个阶段,其中浏览器会自动跳转到不同的URL。

    当用户尝试访问 /resume 路径时,应用程序可能触发了一个OAuth2授权流程。这通常发生在用户点击某个按钮或者触发某些事件时,导致执行了JavaScript代码,该代码包含了重定向逻辑。具体来说,它可能是通过设置 window.location.href 来实现的,或者使用了库(例如,使用了oidc-client.js这样的库)。由于您提到实际上没有返回任何内容,这表明重定向很可能是在客户端完成的,而不是由服务器响应直接引发的。

    根据提供的网络面板信息,这里可能发生的情况如下:

    1. 用户访问 /resume
    2. 页面加载后,JavaScript代码运行,检查是否已登录。如果没有,则开始OAuth2流程。
    3. JavaScript代码执行重定向到授权服务器的登录页面,通常是通过设置 window.location.href 的方式,如:window.location.href = "https://provider.com/login?response_type=code&client_id=your_client_id&redirect_uri=callback/" + encodeURIComponent(window.location.origin) + "/callback";
    4. 授权服务器处理登录,并在验证成功后将用户重定向回应用指定的回调URL(即 /callback)加上一个授权码(code)作为查询参数。
    5. 应用收到带有授权码的回调请求,然后向授权服务器发送一个POST请求,换取访问令牌(access token)。
    6. 一旦获得访问令牌,应用可以存储该令牌并继续执行后续操作,比如显示用户信息、访问受保护的API资源等。

    要确定确切的原因,我们需要查看具体的JavaScript代码。如果您能提供相关的JavaScript代码片段,我可以更准确地指导您查找问题所在。如果这是在服务器端代码中发生的,那可能涉及到某种中间件配置,例如OpenID Connect Middleware,它会在特定路由上自动执行重定向。

    如果想在本地调试,确保JavaScript源代码可用,可以使用浏览器的开发者工具,在Sources标签页找到相关文件,然后逐步执行代码,观察哪些函数被调用了以及它们如何影响了页面行为。

    此外,建议您检查以下几点:

    • 检查HTML页面中是否有任何隐藏的表单提交或者JavaScript脚本触发的重定向。
    • 检查使用的JavaScript库(如oidc-client.js或其他OAuth2库),看它们是如何配置和使用的。
    • 如果使用了ASP.NET Identity或者其他身份验证框架,确认其配置是否正确设置了OAuth2的重定向URLs。

    如果有任何代码片段或具体疑问,请随时分享,我会帮助您进一步分析。

    评论 编辑记录

报告相同问题?

问题事件

  • 修改了问题 5月25日
  • 创建了问题 5月25日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表