HTTP 基本身份验证中的自定义 HTML 登录表单

2024-03-29

我有一个带有 HTTP 基本身份验证的 API。如果未经身份验证的用户发送 HTTP 请求,则服务器返回 401 状态码并WWW-Authenticate标头。浏览器显示标准登录表单。是否可以显示我的 HTML 登录表单而不是标准浏览器的登录表单?


由于您使用的是 AJAX 调用,因此您可以拦截来自服务器的 401 状态代码并将用户重定向到自定义登录表单。例如,假设您正在使用 jQuery 并尝试访问受基本身份验证 API 端点保护https://httpbin.org/basic-auth/user/passwd https://httpbin.org/basic-auth/user/passwd:

$.ajax({
    url: 'https://httpbin.org/basic-auth/user/passwd',
    type: 'GET'
}).then(function(result) {
    alert('success');
}).fail(function(xhr) {
   if (xhr.status === 401) {
       // we are not authenticated => we must redirect the user to our custom login form
       window.location.href = '/my-custom-login-form';
   }
});

收集到用户名和密码后,您将知道如何在对 API 的后续请求中构造正确的身份验证标头:

$.ajax({
    url: 'https://httpbin.org/basic-auth/user/passwd',
    type: 'GET',
    headers: {
        Authorization: 'Basic dXNlcjpwYXNzd2Q='
    }
})...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTTP 基本身份验证中的自定义 HTML 登录表单 的相关文章

随机推荐

  • 如何使用 PHP 检测访问我们网站的用户的 MAC 地址?

    我知道如何追踪 IP 地址 但我需要追踪查看我的页面的用户的 MAC 地址 如何做到这一点 除非用户与网络服务器位于同一 LAN 上 否则无法执行此操作 MAC 地址位于 TCP IP 下面的以太网层 并且不包含在从用户本地网络路由出去的
  • 为什么 SQL Server 2008 在长事务 INSERT 上阻止 SELECT?

    我们正在尝试建立一个只定期插入新记录的事务表 这个简单的表需要我们随着时间的推移不断向其中添加新记录 该表中的事务量预计会相当高 并且可能会定期批量导入事务 gt 1000 这可能需要几秒钟才能完成 然后 我们根据这些数据执行一组选择语句
  • 你能在 vim 中做交互式宏或录音吗?

    我想定义一个 vim 宏 在特定时间中断用户输入 这可能吗 编辑 原来是我的录音 q 而不是宏 可以在录音中使用输入命令 但麻烦大于其价值 我首先将插入输入转义映射到一个键 map
  • Visual Studio Code:如何同时打开调试窗口和资源管理器窗口?

    我是视觉代码新手 我有一个小问题 您有两个用红线圈出的按钮 第一个按钮打开资源管理器窗口 第二个圆圈按钮打开调试窗口 我想打开这两个窗口 你知道该怎么做吗 从 VSCode 1 13 开始这是不可能的 已跟踪显示多个面板的功能请求here
  • 使用TDD在Java中开发文件遍历代码

    我必须实现一些代码来遍历目录结构并返回找到的文件列表 要求非常简单 给定一个基本目录 查找其中的所有文件 不是目录本身 如果找到目录 请重复步骤 1 我想使用 TDD 开发代码 当我开始编写测试时 我意识到我在嘲笑班级File 这样我就可以
  • PHP 致命错误:内存不足(已分配 80740352)(试图分配 12352 字节)

    当用户在我的网站上上传图像时 我收到此错误 错误消息是 PHP 致命错误 home 内存不足 已分配 80740352 试图分配 12352 字节 如何使用 php ini 修复此问题 这是我当前的上传 php ini 设置 upload
  • 对 .toolbarBackground SwiftUI 使用渐变

    我正在尝试为导航 toolbarBackground 设置自定义渐变 但任何时候我都只使用 LinearGradient 中的第一种颜色运行它 toolbar ToolbarItem placement navigationBarTrail
  • 在 React Native 地图中设置最大和最小缩放级别

    如何在 React Native 地图中设置最小和最大缩放级别
  • 如何从 EditText 中仅获取可见文本

    我有一个用于在 Android 上运行的代码编辑器的 EditText 我正在对内容应用语法突出显示 除了 EditText 滚动到屏幕之外的大字符串之外 它运行良好 每次按键时语法突出显示都会应用于整个 Spannable 有谁知道我如何
  • 核心数据实体唯一约束不起作用

    我正在尝试使用新的实体约束检查器在核心数据中设置约束 以使项目的名称唯一 我读过的所有内容都表明这非常简单 设置约束并处理错误 我没有收到任何错误 并且可以根据需要多次添加相同的条目 该应用程序确实需要 IOS 9 0 Xcode 工具要求
  • 在 VSTS 上调用 Pull Request API 时收到“403 Forbidden”

    对于我调用的其他 API 包括 Analytics 一切似乎都工作正常 但是当我尝试进行任何拉取请求查询时 我得到一个403 Forbidden 这些呼叫是由我的私人 Windows 代理进行的 其 PAT 已获得所有范围的授权 它正在使用
  • 如何四舍五入到最接近的十? [复制]

    这个问题在这里已经有答案了 如何在没有 if 语句的情况下将数字四舍五入到最接近的十 例如 98 到 100 int num 87 double t double d 1 0 num d 87 0 t d 100 System out pr
  • 有没有比加0.5f并截断转换更直接的方法将float转换为int并进行舍入?

    在处理浮点数据的 C 代码中 从 float 到 int 的舍入转换相当频繁 例如 一种用途是生成转换表 考虑一下这段代码 Convert a positive float value and round to the nearest in
  • 使用动态模式从 JSON 加载

    我正在尝试保存 Fabric js 画布并使用重新加载它loadFromJson 但我收到错误 patternSourceCanvas 未定义 我认为我应该将其设为全局 所以我删除了 var 但是 当我用新图案填充其他新形状时 这个新图案将
  • 需要 WPF Toolkit 控件(尤其是 DataGrid)的主题

    我刚刚从Codeplex WPF 主题站点 http wpf codeplex com wikipage title WPF 20Themes 我非常喜欢 WhisterBlue 和 BureauBlue 主题 但都不包含任何包含在WPF工
  • 如何在 C++ 中将 int 连接到 wchar_t* ?

    我必须创建并写入N个文件 每个文件都必须有一个整数结尾来标识它 这是我的一段代码 for int i 0 i
  • Google Map v3 在 Chrome 中使用水平灰线和 Foundation 进行初始化

    似乎与 CSS 相关 因为在简单的 HTML 页面中初始化地图效果很好 我添加了建议的 CSS 来修复已知问题 如下 但似乎无法摆脱这个问题 map before after moz box sizing content box impor
  • JQuery + Asp.Net MVC,传递浮点数

    我最近正在使用 MVC 在尝试使用 ajax 向控制器发送请求时遇到了一个奇怪的问题 我正在使用 MVC 直接附带的 JQuery 版本 1 3 2 我正在尝试发送这样的 ajax 请求 post Home OpenTrade price
  • 角度材质日期选择器为空

    I am currently building a web application with Angular and I am using Angular Material for some UI components Currently
  • HTTP 基本身份验证中的自定义 HTML 登录表单

    我有一个带有 HTTP 基本身份验证的 API 如果未经身份验证的用户发送 HTTP 请求 则服务器返回 401 状态码并WWW Authenticate标头 浏览器显示标准登录表单 是否可以显示我的 HTML 登录表单而不是标准浏览器的登