javascript - 使用 Backbone + Slim + Tuupola 基本身份验证时出现未经授权的错误

标签 javascript php backbone.js

我正在尝试将我的 Backbone 应用程序与我的服务器 api(使用 Slim)连接,并且我正在使用 Tuppola/Basic Auth Middleware。

这个例子很简单,我只是想让它发挥作用。我可以在我的服务器中直接在浏览器中实现这一点。我看到弹出窗口,输入用户名和密码,然后就得到了数据。

但是,当我尝试使用 Backbone 应用程序执行相同的操作时,我总是收到相同的 401 未经授权错误。 这是我的 php 代码。正如我所说,直接使用浏览器时效果很好。

我的类容器

$container["auth"] = function ()
{
    return new \Slim\Middleware\HttpBasicAuthentication([
        "path" => "/app_rutas",
        "realm" => "Protected",
        "users" => [
            "test" => "123",
        ],
        "environment" => "REDIRECT_HTTP_AUTHORIZATION"
    ]);
};

我的类(class)路线

class Routes
{
    public static function callbacks($app)
    {
        $app->add(                                       \Controller::class . ':middleware');
        $app->add('auth');
        $app->get('/app_rutas/clients',                  \ClientController::class . ':selectAllClients');
        $app->get('/app_rutas/client/{type}/{values}',   \ClientController::class . ':selectClient');
        $app->put('/app_rutas/client',                   \ClientController::class . ':newClient');
    }
}

这是我的 js 代码,我认为问题是我无法正确地将参数传递给中间件。我尝试了很多方法都没有效果。我以为这应该是这样,但事实并非如此。

fetchData() {
    if (!_.isEmpty(this.clients_id)) {
        this.url = this.apiUrl('client', this.clients_id);

        this.fetch({ headers: {'Authorization':'Basic test:123'} });
    }
},

感谢您提前提出的所有评论。

最佳答案

这是使用 Backbone 传递用户名:密码的正确方法:

this.fetch({ headers: {'Authorization':'Basic ' + btoa('test:123')} })

需要一个base64编码函数。现在终于可以用了。

关于javascript - 使用 Backbone + Slim + Tuupola 基本身份验证时出现未经授权的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44326524/

相关文章:

javascript - Backbone : Validations being run only on set() parameters

javascript - 'self = this' vs 应用或绑定(bind)? ( Backbone )

php - 从数据库中检索数据并在得到分隔符时分隔数据?

javascript - Zoomcharts - 1.5.1 将鼠标悬停在多个链接上不起作用

php - 插入时无效的mysql查询

php - Magento Save 进行插入而不是更新

javascript - 通过 getElementById 更改 CSS 不起作用

javascript - 如何在 Chrome 扩展程序中获取图像 url 列表

php - 在发送到 PayPal 之前不验证 POST 变量 - 何时检查?

javascript - Backbone 中自定义事件的优势是什么?