首页 > 极客资料 博客日记
前后端分离项目,后期前端身份验证的麻烦
2024-08-08 13:30:05极客资料围观26次
本篇文章分享前后端分离项目,后期前端身份验证的麻烦,对你有帮助的话记得收藏一下,看极客之家收获更多编程知识
软件构成
- 后端
后端是一个asp.netcore webapi
项目,使用jwt进行身份验证和鉴权。 - 前端
前端是一个基于http协议的asp.netcore RezorPage
项目,但实际上完全使用的wwwwroot
目录下的静态文件。没有使用RazorPage
。
目前只有后端接口鉴权,前端页面任意访问
身份验证需求
这两天安全要求下来了,要求给前端页面加上身份验证。只开放login
登录页面redirect
第三方系统跳转此系统页面。初始办法是后端登录生成token后,放到redis
中。
- login.html
访问前端login登录页面,点击登录后,后端接口返回token,login页面将token放在本地cookie
中。之后打开新页面时都会带上这个cookie。前端中间件中取出cookie中的token,和redis中的token比较。如果一致,则放行到下一个中间件。如果不一致,则重定向到login录页面,并短路请求处理管道。
- redirect.html
对于redirect
第三方系统跳转此系统页面,则是在url中传入了一个token,前端项目验证token有效性之后放入到redis中。同时redirect页面也把这个token放入本地cookie。之后新标签页都会带上这个cookie。在前端项目的中间件中进行验证。
问题
对于在新标签页打开页面的形式,这种身份验证方式运行良好,没有任何问题。
但是使用cookie进行身份验证有一个问题。就是iframe
框架限制了跨域的cookie提交。当redirect被嵌入其它系统时,首先,这个本地cookie被禁止写入。其次,cookie不会被放到请求中,因此一直往登录页面跳转。
我之后试了下会话cookie
,也就是session
。但是被查看响应信息,提示会话cookie同样被浏览器禁止写入。这下子就麻烦了,好多其它系统页面都使用了iframe嵌入这个项目的页面。如果加上前端身份验证的话,那些地方的iframe都会跳转到登录页面。
是否只有https才能在iframe中携带cookie,解决这个跨域问题?
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
上一篇:微调
下一篇:vue前端自适应布局,一步到位所有自适应
相关文章
最新发布
- Nuxt.js 应用中的 prerender:routes 事件钩子详解
- 【问题解决】Tomcat由低于8版本升级到高版本使用Tomcat自带连接池报错无法找到表空间的问题
- 【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit
- 六、Spring Boot集成Spring Security之前后分离认证流程最佳方案
- 《JVM第7课》堆区
- .NET 8 高性能跨平台图像处理库 ImageSharp
- 还在为慢速数据传输苦恼?Linux 零拷贝技术来帮你!
- 刚毕业,去做边缘业务,还有救吗?
- 如何避免 HttpClient 丢失请求头:通过 HttpRequestMessage 解决并优化
- 让性能提升56%的Vue3.5响应式重构之“版本计数”