SPA 的 Cookie 与基于令牌的身份验证?

     2023-03-10     258

关键词:

【中文标题】SPA 的 Cookie 与基于令牌的身份验证?【英文标题】:Cookie vs token based authentication for SPA? 【发布时间】:2015-10-29 21:30:02 【问题描述】:

我正在使用 AngularJS 和 Spring 作为后端构建单页应用程序。 为了使我的后端无状态,我最近研究了 JWT(JSON Web Tokens)。现在这是混乱 -

一个。我应该将响应头上的 JWT 发送到客户端,然后通过 ngCookie 将其保存到 cookie 吗?如果是,我该如何处理 XSS 攻击?

b.我应该在后端生成的 cookie 中发送 JWT 并在客户端浏览器上设置 cookie 吗?

c。 JWT 安全吗? (由于我可以很容易地解码 JWT,顺便说一下,我将在 https 上运行我的应用程序)

如果有更好的方法来保护我的应用,我很想知道。

谢谢。

请分享任何信息。

【问题讨论】:

【参考方案1】:

JWT 应该保存在本地存储中。观看此视频了解更多信息:

https://www.youtube.com/watch?v=X7t2pdJYHNI

JWT 不安全。您必须使用 https 来加密您的数据。

【讨论】:

在cookies中存储数据时为什么要保存在本地存储是非常可行的选择 如果您将其存储在 cookie 中并且不将其发送到标头中,您将错过一些好处(CORS、CSRF ...)。如果将其存储在cookie中并在header中发送,那只是浪费带宽。【参考方案2】:

a + b

JWT 可以发送到:
    授权标头 请求正文 网址参数 cookie(如果 ^)
并存储在本地存储或 cookie 文件 (^) 中。

c

JWT 是经过编码和签名的。它没有加密。所以它不应该包含敏感数据(例如密码)。

但如果您仍需要添加一些私有数据,请尝试 JWE(Json Web 加密)。

【讨论】:

如何使用 Laravel Sanctum 处理 SPA 和基于令牌的身份验证

】如何使用LaravelSanctum处理SPA和基于令牌的身份验证【英文标题】:HowcanihandlebothSPAandtokenbasedauthenticationwithLaravelSanctum【发布时间】:2021-09-1603:20:39【问题描述】:我花了几天时间在LaravelSanctum上试图弄清楚如何设置我的身份验证... 查看详情

基于令牌的身份验证的安全性

...以便即时进行廉价的用户验证。一种实现方式是生成一个cookie,该cookie传递给用户以进行会话管理。但是,我的理解是,基于令牌的身份验证(至少通过cookie)容易受到中间人 查看详情

在不使用电子邮件的情况下使用基于令牌和基于 cookie 的身份验证

】在不使用电子邮件的情况下使用基于令牌和基于cookie的身份验证【英文标题】:Usingtoken-basedtogetherwithcookie-basedauthenticationwithoutemail【发布时间】:2019-12-1812:36:42【问题描述】:我正在使用Identity开发.NETCoreMVC项目。我目前有一... 查看详情

用于反应前端的基于令牌的身份验证

...我正在尝试使用基于JWT的身份验证,如果我将令牌保存在cookie中,如下所示,我不确定如何保护路由importCookiesfrom\'universal-cookie\';constcookies=newCookies();constauthS 查看详情

如何使用基于令牌的 HTTP 基本身份验证保护 MVC 4 .NET SPA 模板中的 WebAPI?

】如何使用基于令牌的HTTP基本身份验证保护MVC4.NETSPA模板中的WebAPI?【英文标题】:HowtosecureWebAPIinsideMVC4.NETSPAtemplatewithtoken-basedHTTPbasicauthentication?【发布时间】:2013-04-1014:42:30【问题描述】:我一直在阅读有关保护WebAPI主题的不... 查看详情

.Net Core 2.1 与 IdentityServer4 Cookie 和基于 API JWT 的同一应用程序的身份验证

】.NetCore2.1与IdentityServer4Cookie和基于APIJWT的同一应用程序的身份验证【英文标题】:.NetCore2.1withIdentityServer4CookieandAPIJWTbasedauthenticationforthesameapp【发布时间】:2019-06-0213:47:41【问题描述】:我有一个IdentityServer设置,带有一个API和... 查看详情

使用 PyJWT 基于 Django 令牌的身份验证,令牌验证问题

...证步骤,如下所述:在基于令牌的身份验证中,不会使用cookie和会话。令牌将用于对 查看详情

带有存储在 cookie 中的刷新令牌的 SPA - 如何使用 IdentityServer4 进行配置?

】带有存储在cookie中的刷新令牌的SPA-如何使用IdentityServer4进行配置?【英文标题】:SPAwithrefreshtokensstoredincookie-howtoconfigurewithIdentityServer4?【发布时间】:2020-07-0221:31:32【问题描述】:我有一个SPA,它使用长寿命的自包含JWT与API... 查看详情

在 Chromecast Receiver 中利用基于 cookie 的身份验证

】在ChromecastReceiver中利用基于cookie的身份验证【英文标题】:Leveragingcookie-basedauthenticationinChromecastReceiver【发布时间】:2014-02-0518:45:21【问题描述】:当对特定媒体资源的访问取决于令牌可以提供的某种授权时,我已经成功地将... 查看详情

Web 应用程序的基于令牌的身份验证:如何缓存令牌?

...【问题描述】:我正在尝试将Web应用程序从“传统”基于cookie的身份验证机制切换到纯粹基于令牌的身份验证机制。客户端收到令牌后应将其缓存以减少开销。存储令牌的最佳方式是什么?这是我从谷歌搜索中学到的:我研究的... 查看详情

Laravel 5.2 基于令牌的身份验证与 JWT

】Laravel5.2基于令牌的身份验证与JWT【英文标题】:Laravel5.2tokenbasedauthenticationvsJWT【发布时间】:2016-09-2113:28:36【问题描述】:我为我的API服务实现身份验证,并为此考虑Laravel5.2基于令牌的身份验证。有什么理由改用JsonWebTokens吗... 查看详情

带有 Durandal SPA 模板的 MVC 身份验证和防伪令牌

】带有DurandalSPA模板的MVC身份验证和防伪令牌【英文标题】:MVCAuthenticationandAntiforgerytokenwithDurandalSPAtemplate【发布时间】:2013-03-2714:47:39【问题描述】:我的SPA的某些区域需要对所有用户开放,而某些区域需要身份验证。在这些... 查看详情

Django Rest 框架中的基于会话的与令牌身份验证

】DjangoRest框架中的基于会话的与令牌身份验证【英文标题】:SessionBasedvsTokenAuthenticationinDjangoRestFramework【发布时间】:2021-05-1023:02:03【问题描述】:DRF文档(https://www.django-rest-framework.org/api-guide/authentication/#authentication)指出令牌身... 查看详情

用户和单独模块的基于令牌的身份验证

】用户和单独模块的基于令牌的身份验证【英文标题】:Tokenbasedauthenticationforuserandseparatemodule【发布时间】:2015-10-1715:56:20【问题描述】:我有2个场景想要实现基于令牌的身份验证:我想在用户登录时实现基于令牌的身份验证... 查看详情

SPA 使用的经过身份验证的 Rest API:如何获取用于登录和注册表单的 CSRF 令牌?

...过身份验证的RestAPI:如何获取用于登录和注册表单的CSRF令牌?【英文标题】:AuthenticatedRestAPIusedbyaSPA:howtogetCSRFtokenforloginandregistrationforms?【发布时间】:2020-03-2614:10:55【问题描述】:我有一个单页应用程序,它在我正在构建的re... 查看详情

服务器如何验证基于会话的 cookie 是真实的?

】服务器如何验证基于会话的cookie是真实的?【英文标题】:Howaresessionbasedcookiesvalidatedtobegenuinebytheserver?【发布时间】:2020-12-2212:53:55【问题描述】:我试图了解来自客户端的基于会话的cookie是如何被服务器验证的。对于上下文... 查看详情

具有基于 HttpOnly cookie 的身份验证和会话管理的单页应用程序

】具有基于HttpOnlycookie的身份验证和会话管理的单页应用程序【英文标题】:SinglepageapplicationwithHttpOnlycookie-basedauthenticationandsessionmanagement【发布时间】:2017-08-0701:22:04【问题描述】:几天来,我一直在为我的单页应用程序寻找一... 查看详情

您是不是更改 cookie 身份验证用户的身份验证令牌?如果有,多久一次?

】您是不是更改cookie身份验证用户的身份验证令牌?如果有,多久一次?【英文标题】:Doyouchangeanauthenticationtokenforacookie-authenticateduser?Ifso,howoften?您是否更改cookie身份验证用户的身份验证令牌?如果有,多久一次?【发布时间】... 查看详情