Slim 基本身份验证

2024-01-28

今天是个好日子!

我这里有一个有效的精简代码slim-basic-auth https://packagist.org/packages/tuupola/slim-basic-auth当我进入受限目录时,会显示以下内容:

一切正常,但我想做的是将其重定向到我的登录页面,而不是显示弹出登录框。这是我的登录页面:

我的苗条代码:

$pdo = new \PDO("mysql:host=localhost;dbname=databasename", "username");
$app->add(new \Slim\Middleware\HttpBasicAuthentication([
    "path" => "/main",
    "realm" => "Protected",
    "authenticator" => new PdoAuthenticator([
        "pdo" => $pdo,
        "table" => "accounts",
        "user" => "accountUsername",
        "hash" => "accountPassword"
    ]),
    "callback" => function ($request, $response, $arguments) use ($app) {
        return $response->withRedirect('/main/contacts');
    }

当我尝试使用弹出登录框登录时,它可以工作,但我真的想将其重定向到我的登录页面而不是那个页面。

任何帮助将非常感激。


中间件实现HTTP基本访问认证 https://en.wikipedia.org/wiki/Basic_access_authentication。身份验证对话框通过响应标头触发。由浏览器供应商决定如何询问凭据。大多数浏览器使用您描述的弹出登录对话框。

您正在尝试做的是使用 HTTP 基本身份验证的一种非正统方式。但是,您可以通过删除来抑制登录对话框WWW-Authenticate响应中的标头。请注意您需要的至少版本2.0.2 https://packagist.org/packages/tuupola/slim-basic-auth为了这个工作。

$app->add(new \Slim\Middleware\HttpBasicAuthentication([
    "path" => ["/main"],
    "authenticator" => new PdoAuthenticator([
        "pdo" => $pdo,
        "table" => "accounts",
        "user" => "accountUsername",
        "hash" => "accountPassword"
    ]),
    "error" => function ($request, $response, $arguments) {
        return $response
            ->withRedirect("/auth/login")
            ->withoutHeader("WWW-Authenticate");
    }
]));

但是,使用上面的代码,您仍然需要设置Authentication: Basic以某种方式请求标头。一种方法是使用 AJAX 请求。

$.ajax({
   url: "http://example.com/auth/login",
   username: $("username").val(),
   password: $("password").val(),
   success: function(result) {
     alert("Authorization header should now be set...");
   }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Slim 基本身份验证 的相关文章

  • en_CA 语言环境中 sprintf 中的逗号作为小数分隔符

    是否可以在 en CA 语言环境中的 sprintf 中使用逗号作为小数点分隔符 sprintf 能够识别区域设置 并且将始终使用当前的区域设置 但您可以使用数字格式 http php net manual en function numb
  • WooCommerce - 谢谢和“我的帐户”查看订单页面上的自定义通知

    在 WooCommerce 上我有一个自定义字段days manufacture对于具有不同 整数 值的每个产品 我还有这个代码 可以在购物车页面上显示一条消息 其中的最高值是 生产天数 add action woocommerce bef
  • 如何找到数组中的最小数字并返回该数组的主索引?

    我有一个如下所示的数组 我想找到 diff 索引中数字最小的数组 所以在这种情况下 我想取回数组 7 我需要的只是数组编号 即 7 而不是任何其他信息 我知道我可以使用 array column 轻松找到最小的数字 但如何返回整个数组索引
  • 使用 PHP 将 HTML 片段包裹在 div 中(并从 HTML 标签生成目录)

    我原来的 HTML 看起来像这样 h1 Page Title h1 h2 Title of segment one h2 img src img jpg alt An image of segment one p Paragraph one
  • 将变量从 PHP 发送到 Javascript

    我在两个单独的文件中有以下代码 其中一个是 javascript 另一个是 php JavaScript xmlhttp new XMLHttpRequest xmlhttp onreadystatechange function if t
  • Symfony2 安全性 @Secure 注释不起作用

    我正在尝试使用注释来保护我的控制器 namespace Vinny StreamBundle Controller use Symfony Bundle FrameworkBundle Controller Controller use J
  • 从 MySQL 返回结果时的数字顺序

    我的数据库表中有以下类型的标题 Topic 1 blah blah Topic 2 blah blah Topic 3 blah blah Topic 10 blah blah Topic 11 blah blah etc 选择查询将始终返
  • 发送蓝色附件

    我尝试发送附件 pdf 文件 我收到电子邮件但没有附件 我尝试过使用https github com sendinblue APIv3 php library blob master docs Model SendSmtpEmail mde
  • PHP 中 glob() 中的转义空格?

    我在 PHP 中有以下函数 除了名称中带有空格的文件外 该函数运行良好 Good picture jpg例如 这里是 function getphotolist currentalbum photos glob currentalbum J
  • 类外函数

    我只是想告诉你 我是 OOP 的新手 这对我来说相当困难 但这是我的代码 class functions function safe query string string mysql escape string htmlspecialch
  • 如何设置 Zend Cache Storage 的过期时间?

    我想在 Zend 文件系统缓存中存储一 些 XML 并让它在 30 分钟后过期 如何设置缓存持续时间 过期时间 我使用 Zend 缓存作为组件 而不是在完整的 ZF2 应用程序的上下文中 cache Zend Cache StorageFa
  • 将行分组在一列上并与其他列形成嵌套子数组

    这是我试图处理的事情 我的数组看起来像这样并且有重复项 products product name gt Adidas1 address gt street 2 product name gt Adidas2 address gt stre
  • Symfony - 自定义验证器和依赖注入

    我正在尝试对自定义验证器使用依赖项注入 以便能够使用实体管理器 我遵循 Symfony 示例 依赖注入 http symfony com doc current cookbook validation custom constraint h
  • PDO 多查询“SQLSTATE[HY000]:一般错误”

    我仍在学习 PDO 所以我可能会错过一些东西 但基本上我正在尝试将一行插入表中 然后选择生成的 id 我不确定它是否喜欢一个 pdo 语句中的两个查询 这是我用来执行 SQL 的代码 public function ExecuteQuery
  • 交响乐 2 |修改具有文件(图片)字段的对象时出现表单异常

    我正在使用 Symfony2 我有一个实体Post有标题和图片字段 我的问题 当我创建帖子时一切都很好 我有我的图片等 但是当我想修改它时 我遇到了 图片 字段的问题 它是一个上传的文件 Symfony 想要一个文件类型并且它有一个字符串
  • 拖放图像上传在服务器上不起作用

    我正在尝试实现拖放图像上传 我在网上找到了一个相当简单的脚本并适合我的使用 在我的本地安装中 文件上传得很好 但在服务器上却不行 从我的调试尝试来看 SERVER HTTP X FILENAME 甚至没有被 php 设置 我尝试了以下方法
  • php平台安装询问我intl扩展,但似乎已经安装

    在 orocrm 安装期间 使用 symfony 2 开发的平台 我收到此错误 Fatal error Uncaught exception Symfony Component Intl Exception MethodArgumentVa
  • 如何防止显示菱形问号符号,即使使用 mb_substr 和 utf-8

    我读过其他一些问题 尝试了答案 但最终没有结果 我得到的是例如这个 我无法删除那个奇怪的问号 我所做的就是获取 RSS feed 的内容 该内容也被编码为内容使用希腊语 有没有什么办法解决这一问题 div div
  • 重复密码在 Yii2 中不起作用

    我在模型中编写的规则如下 public password repeat inheritdoc public function rules return password required password string min gt 6 p
  • 单个返回语句与多个返回语句? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • iOS:为什么我们的应用程序有时不显示在通知中心?

    这个问题有3种情况 在开发过程中 我可以重新启动iPhone并重新安装 应用程序来解决这个问题 首先 这个问题经常出现在越狱的iPhone上 所以我们 认为配置可能有问题 个人资料 但现在 越来越多的用户抱怨这个问题 无法接收推送 他们使用
  • 如何比较两个git分支并通过提交消息过滤差异?

    我有一个名为的发布分支release X X X X其中包含我想要部署到生产的所有功能分支 发布分支是在master这是当前的生产状态 在每个发布日 我都会确保我们的发布分支仅包含计划用于发布的更改 我使用此命令来比较发布分支和主分支 gi
  • requireJs 订单插件:它可以存在于与 require.js 基本路径不同的路径中吗?

    使用订单插件时 require js 在给定的 basePath order js 中查找它 example require baseUrl public js require order http cdnjs cloudflare com
  • 如何将移动构造函数与二维数组 (**) 一起使用?

    可能是我错误地编码了我的类 但是当我使用移动构造函数而不是复制 cotr 作为重载之一 而不是准确地说 时 我的程序崩溃了 例如 class Sample int a int b constructor declarations 在 cpp
  • python 按键简单游戏

    我想在屏幕上看到一个符号 例如可能是 散列 符号会有一些起始位置 比如说 0 0 如果我按向右箭头 我希望看到标志向右移动 如果按向左箭头 我希望看到标志向左移动 等等 到目前为止 我的代码看起来像这样 它适用于读取 pos 但我想添加某种
  • Delphi 如何获取控件上的光标位置?

    我想知道 TCustomControl 上光标的位置 如何找到坐标 获取光标位置 http msdn microsoft com en us library ms648390 28v vs 85 29 aspx如果您无法处理鼠标事件 这会很
  • 动画 UIButton 的标题更改

    在这里我找到了如何制作动画UIButton的标题更改使用现已弃用beginAnimations context method iPhone 的 UIBUtton 标题动画 https stackoverflow com questions
  • 在 ASP.NET WebApi 2 中实现移动应用程序的外部身份验证

    我正在尝试构建一个 API 使用 ASP NET WebApi 该 API 将由学校项目的本机移动应用程序使用 我不关心 开发移动应用程序 这个责任由不同的成员承担 我现在需要实现基于令牌的 Facebook 登录 有很多教程可用于介绍如何
  • 如何以编程方式获取 Admob 的设备 ID?

    我有多个设备 而且可能还会有更多 并且不想一一添加 有人知道 Admob 使用什么 ID 吗 String aid Settings Secure getString getContext getContentResolver androi
  • Gem 安装错误可写和 PATH

    这是我遇到的两个错误 我使用的是 OS X 老实说 不知道我是否通过 gem 安装 如果这很重要的话 WARNING Installing to gem since Library Ruby Gems 1 8 and usr bin are
  • 将列表拆分为单独但重叠的块

    假设我有一个清单A A 1 2 3 4 5 6 7 8 9 10 我想创建一个新列表 比如说B 按以下顺序使用上面的列表 B 1 2 3 3 4 5 5 6 7 7 8 9 9 10 即前 3 个数字为A 0 1 2 后 3 个数字为A 2
  • GAE 云数据存储:获取最常编写的模型

    我正在尝试按最常编写的模型的降序排列模型列表 这是我到目前为止所尝试过的 client查询集提供模型及其属性 属性的详细信息 以及这些模型相关的详细信息 实体计数 内置索引计数 内置索引大小 数据大小 复合索引大小 复合索引计数 总大小 但
  • 为什么结构体的 sizeof 不安全

    The MSDN http msdn microsoft com en us library eahchzkf 28v vs 80 29 aspx明确指出 对于所有其他类型 包括结构体 sizeof 运算符只能 在不安全的代码块中使用 Th
  • 在 URLSearchParams 中使用 json 对象

    是否可以以某种方式将 json 对象附加到 URLSearchParams 对象上 所以而不是 urlSearchParams append search person it s urlSearchParams append search
  • 没有为 MySQLi 准备好的语句中的参数提供数据

    我一直在重新设计我的网站 从不受保护的 MySQL 查询到 mysqli 准备好的语句 一切都很顺利 直到我得到这个 没有为准备好的语句中的参数提供数据 if empty err pSETQuery NULL if empty POST p
  • 命名空间中的枚举

    做这样的事情有没有意义 namespace status enum status ok error 并像这样使用它status ok 或者我应该这样做 enum status status ok status error 并像这样使用它st
  • 添加到 ArrayList Java

    我是java初学者 需要一些帮助 我正在尝试将抽象数据类型 Foo 它是一个关联列表 转换为字符串 B 的 Arraylist 如何循环遍历该列表并将每个字符串添加到数组中 我可能想多了 但我现在迷失了 我在这里先向您的帮助表示感谢 实例化
  • deepcopy() 非常慢

    我在 Python 中有一个包含大约 1000 个对象 行星系统 恒星 行星 的游戏状态 我需要复制它并在需要时对其应用一堆转换 然而 在大约 1 个请求 秒的情况下 这是占用了我24 63 的运行时间 https i stack imgu
  • 如何列出属于某个VPC的所有资源?

    在我的 AWS 账户中 我的 VPC 很少 我正在尝试找到一种方法来列出位于某个 VPC 下的所有资源 谢谢 您可以通过三种方式完成此操作 AWS CLI AWS 控制台或代码 AWS CLI 您可以使用 AWS CLI 列出与 VPC 关
  • Slim 基本身份验证

    今天是个好日子 我这里有一个有效的精简代码slim basic auth https packagist org packages tuupola slim basic auth当我进入受限目录时 会显示以下内容 一切正常 但我想做的是将其