如何编辑源自超链接的HTTP GET请求的授权标头(<a href>标记)

Lei*_*eif 5 javascript express angularjs

我有一个Angular应用程序,它在localstorage中存储JWT令牌以提供身份验证.我想要做的是弄清楚如何获取这个JWT令牌并将其插入HTTP GET请求,该请求呈现为一个全新的网页(不是来自XMLHTTP请求的返回对象,显示在同一页面中......) .

这可能吗?我发现做类似事情的唯一方法是使用基本的HTTP授权,例如:

用户名:password@www.hypotheticalwebsite.com

而且我假设我可以在那里通过我的整个JWT.

我正在使用Express.js来处理我的Node.js后端上的路由.

bla*_*011 3

只需从您的区域设置存储中读出 JWT,然后将 JWT 插入授权标头,或者您可以将其添加为 GET 参数。

我会推荐标题。

在下一面,简单地读出 JWT。

如果需要在express实例的所有页面上进行处理,则在express-middleware中进行。

更新

如果您想使用普通链接,则必须使用类似 的参数?auth_token=12345

要添加它是一个标头,您可以使用$http并使用控制器中的方法。例如:

控制器

$scope.openLink = function() {
    var config = {
        headers:  {
            'Authorization': '12345',
        }
    };

    $http.get("<your url>", config);
}
Run Code Online (Sandbox Code Playgroud)

看法

<a href="#" ng-click="openLink()">Test</a>
Run Code Online (Sandbox Code Playgroud)

屏蔽管理界面

为了安全起见,您应该在 api 中添加角色,并且只允许管理员进行与管理相关的调用,并在角度方面检查是否允许用户使用其拥有的角色打开 UI。对于 Angular,有一些 acl 模块,例如:github.com/mikemclin/angular-acl