前后端分离项目,后期前端身份验证的麻烦

软件构成

  • 后端
    后端是一个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,解决这个跨域问题?

相关推荐
IT教程资源13 天前
N-159基于springboot,vue,AI协同过滤算法旅游推荐系统
mysql·vue·前后端分离·springboot旅游推荐·协同过滤算法旅游推荐·ai旅游推荐
zhengxianyi51517 天前
只需3句让Vue3 打包部署后通过修改配置文件修改全局变量——实时生效
vue.js·前后端分离·数据大屏·ruoyi-vue-pro优化
zhengxianyi51517 天前
Vue2 打包部署后通过修改配置文件修改全局变量——实时生效
前端·vue.js·前后端分离·数据大屏·ruoyi-vue-pro
zhengxianyi51518 天前
vite build 发布到nginx二级目录——将yudao-ui-go-view打包、部署到big目录下
vue.js·nginx·vite·前后端分离·打包·ruoyi-vue-pro优化·部署运维
zhengxianyi51519 天前
ruoyi-vue-pro本地环境搭建(超级详细,带异常处理)
前端·vue.js·前后端分离·ruoyi-vue-pro
zhengxianyi51519 天前
ruoyi-vue-pro数据大屏优化——解决go-view同一个大屏报表在数据库中存储大量的图片的问题
前端·vue.js·前后端分离·数据大屏·ruoyi-vue-pro优化
zhengxianyi51521 天前
ruoyi-vue-pro数据大屏优化——在yudao-module-report-app使用yudao-moudle-sso优化单点登录
vue.js·前后端分离·数据大屏·go-view·ruoyi-vue-pro优化
大猫和小黄21 天前
若依从零到部署:前后端分离和微服务版
java·微服务·云原生·架构·前后端分离·若依
zhengxianyi51522 天前
ruoyi-vue-pro优化——如何将一个模块快速变成一个独立的应用进行开发,部署,管理
vue.js·前后端分离·数据大屏·ruoyi-vue-pro优化
zhengxianyi51522 天前
ruoyi-vue-pro优化——让菜单支持多个参数,一键直达【经营分析】、【生产报表】、【销售报表】
vue.js·前后端分离·数据大屏·ruoyi-vue-pro优化