【问题标题】:Where can i store authentication tokens in client side我在哪里可以在客户端存储身份验证令牌
【发布时间】:2017-08-19 21:00:27
【问题描述】:

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

【问题讨论】:

标签: authentication asp.net-web-api


【解决方案1】:

我会为此目的使用 CookieHTML5 本地存储


Cookies 我猜更常见:

JQuery: $.cookie()

只需创建一个 cookie:

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

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

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

JS: 文档.cookie()

要创建一个新的 cookie:

document.cookie = "NewCookie=TheCookiesValue";

您可以使用https://javascriptexamples.info/code/javascript-get-cookie-name/ 中的此脚本来检索 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 本地存储:

我对这个还不是很了解。但从这里开始:https://www.w3schools.com/html/html5_webstorage.asp

【讨论】:

    【解决方案2】:

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

    基于 SPA 框架,您可以更优雅地存储它们。比如说,如果您使用的是 Ember.js,您可以使用单例并将令牌注入 ember 数据存储区,从而进行 API 调用或类似的调用。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      • 2017-08-15
      • 1970-01-01
      • 2018-11-23
      • 2018-07-28
      • 2019-12-30
      • 2021-07-11
      相关资源
      最近更新 更多