我在哪里可以在客户端存储身份验证令牌

时间:2017-08-19 12:20:05

标签: authentication asp.net-web-api

当我的用户通过用户名和密码进行身份验证时,他们会收到身份验证令牌,我需要使用此身份验证令牌来授权某些asp.net WebAPI调用。为此,我将身份验证令牌存储在浏览器本地存储中,因此这是存储该令牌的最安全的方法,并且仍然可以通过我的javascript代码访问以进行API调用?

2 个答案:

答案 0 :(得分:0)

I'd use a Cookie or HTML5 Local Storage for the purpose.


Cookies are more common I guess:

JQuery: $.cookie()

Just create a cookie with:

$.cookie("MyNewCookie", "Whats inside");

https://github.com/carhartl/jquery-cookie

https://www.electrictoolbox.com/jquery-cookies/

JS: document.cookie()

To create a new cookie:

document.cookie = "NewCookie=TheCookiesValue";

You could use this script from https://javascriptexamples.info/code/javascript-get-cookie-name/ to retrieve the cookie:

function getCookie(name) {
    var value = "; " + document.cookie;
    var parts = value.split("; " + name + "=");
    if (parts.length == 2) return parts.pop().split(";").shift();
}

https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie


HTML5 Local Storage:

I don't know a lot about this one, yet. But start here: https://www.w3schools.com/html/html5_webstorage.asp

答案 1 :(得分:0)

虽然您可以使用Cookie或本地存储空间。出于安全考虑,我希望将令牌保存在应用程序的全局上下文中。

基于SPA框架,您可以更优雅地存储它们。比方说,如果您使用的是Ember.js,您可以使用单例并在ember数据存储中注入令牌,这会使API调用或类似于此。

希望这有帮助。