繁体   English   中英

Angular基本身份验证和令牌

[英]Angular basic authentication and token

我疯狂地了解如何使用API​​处理基本身份验证。

基本上,我需要做的是从发送模块用户名和模块密码(而不是用户登录名)的API请求令牌。 服务器应返回一个令牌,该令牌将用于我对服务器发出的所有其他请求。

在互联网上,我发现了涉及用户登录和角度路由的解决方案。 我没有使用任何路由,路由是在服务器端管理的,我需要在几个页面上使用API​​,然后才需要在每个请求上附加令牌。

我不完全了解如何正确启动。

我应该为首次身份验证创建一个ajax请求,将令牌保存在某处并将其用于所有其他请求。 请记住,如果令牌无效,则应再次请求。

我对如何做非常困惑,我找不到任何好的教程。

有什么帮助吗?

我仍在学习Angular,但希望这个基本示例对您有所帮助。 您可以使用$ cookies保存和检索从服务器发送回的令牌。 然后,假设您使用的是$ http或$ resource,则可以使用$ httpProvider拦截器将当前令牌值(从$ cookies中检索)添加到应用程序发出的每个发出请求的标头中。

这是一个简单的示例,说明如何创建$ httpProvider拦截器:

authServices.factory('sendTokenInHeader', ['$cookies', function($cookies) {
  return {
    request: function(config) {
      var token = $cookies.getObject('x-my-token');
        if(token) {
          var updateHeaders = config.headers || {};
          updateHeaders['x-my-token'] = token;
          config.headers = updateHeaders;
         }
         return config;
    }
  };
}]);

然后在您的app.config中,您只需推动此拦截器,现在任何传出的$ http / $ resource请求都将包含当前令牌!

myApp.config(['$httpProvider', function($httpProvider) {
  // do other stuff...

  $httpProvider.interceptors.push('sendTokenInHeaders');
}]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM