gpt4 book ai didi

javascript - SPA 具有 Angular 和基于 cookie 的身份验证

转载 作者:行者123 更新时间:2023-11-28 01:33:14 24 4
gpt4 key购买 nike

我正在使用的 Web 框架具有基于 cookie(或 token )的身份验证。当用户注册时,会发生回发,并且服务器将身份验证 token 放置在 cookie 中,该 cookie 将自身附加到用户浏览器。所有后续请求都包含此 token ,因此从这个意义上来说是安全的。

我的问题:用户注册后我是否必须进行全页回发刷新才能将身份验证 token 放置在用户浏览器上?或者我可以简单地让服务器在成功的用户注册(也通过ajax完成)时返回一个身份验证 token (通过ajax)吗?如果可能的话我更喜欢后者。

谢谢。

最佳答案

如果您的框架返回一个 token ,您只需将其添加到所有后续请求的 header 中即可。

使其永久化需要额外的代码(例如:将其写入 localStorage)

我不知道您的框架想要的 header :)但我可以假设您的登录 Controller 可能如下所示:

angular.module('coolModule', [])
.controller('CoolController', function ($scope, $http) {

$scope.loginButton = function () {

// assuming username and password are in the scope
$http.post('/api/login', { $scope.username, $scope.password })
.success(function (data, status, headers, config) {
$http.defaults.headers.common['X-My-Token'] = data.token;
});

}
})

后续请求将有一个 X-My-Token header ,通常用于识别

编辑:是的,设置 cookie(在 javascript 中或从服务器响应)将使其在每次请求时发送(就像这个互联网世界中的所有 cookie)
如果您也在开发后端会更优雅,让后端向客户端发送 cookie,而不是像您评论的那样手动编写 ^_^

cookie 有一些优点:比如过期日期,也有一些缺点:从 javascript 读取它并不是很优雅(通常需要一个包装器 lib、angular-cookie ,用于浏览器兼容性)。

在这两种情况下,当 cookie 过期或 token 无效(因此您将收到 40x 响应)时,您将必须使用一些 angular.js 代码来处理失败

关于javascript - SPA 具有 Angular 和基于 cookie 的身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21826907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com