angularjs - 无法使用 Passport 基本身份验证来验证 $http

标签 angularjs node.js passport.js

如何使用 Passport 基本身份验证进行 $http 调用?

我在服务器上使用 Passport 设置了基本身份验证,并且可以使用 POSTMAN 进行测试。但是当我尝试在我的 Angular 应用程序上执行此操作时,我无法让它传递基本身份验证的用户名和密码。

我的 $http 调用中有以下内容

$http({
    method:'POST',
    url: 'http://myapicall.com/api/login',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
      'Authorization' : 'Basic Username:MySecret'
    },....

我还需要添加什么吗?我一直没有获得授权,当我在 postman 上使用相同的用户名和密码时,它工作正常。

最佳答案

使用btoa函数将您的username:password转换为base64

$http({
    method:'POST',
    url: 'http://myapicall.com/api/login',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
      'Authorization' : 'Basic ' + window.btoa('Username:MySecret')
    },....

或者使用这个库 https://github.com/dankogai/js-base64

关于angularjs - 无法使用 Passport 基本身份验证来验证 $http,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35973482/

相关文章:

javascript - 如何更改单击时的下拉列表标签文本?

html - ng-if 和 col col-50 似乎不在一起?

javascript - 编辑对象时理解 angularjs $apply 和 $scope

node.js - 序列化查询子结构

javascript - Node.js 身份验证 : Using passport with Express

node.js - 如何处理 Passport 身份验证响应并将其显示给用户

AngularJS - 存储数据、工厂

javascript - 你怎么能只 console.log 前 100 行?

javascript - 为什么我没有实体的引用 ID?

node.js - PassportJS 在用户通过身份验证后不重定向