网关登录与web前端本地开发

网关登录与web前端本地开发

场景描述:管理后台和测试环境等服务部署在内网,访问这些资源需要网关验证访问权限;在线上访问这些资源时,会自动跳转要求网关登录,登录完成再重新跳回来。在本地开发时网关拒绝登录跳转。

  • 流程分析:在访问需要网关验证的资源时,请求会在cookie中携带权限token,如果token有效,则直接访问,无效则网关响应302跳转至登录页,登录完成后,跳转至与请求同域的地址并在cookie中设置新的token,再重定向回访问的请求,在此设置的cookie只有同域(或子域)可使用;
  • 解决思路:
    1. 如果在本地开发,使用127.0.0.1或者localhost域名等,因为与请求资源不同域也不是子域,所以不会携带其cookie,又不被网关准许跳转登录;
    2. 所以在本地开发时,需要通过网关验证就需要携带与资源同域的cookie;
    3. 这要求网关在设置cookie时,允许子域也可以使用,(设置cookie时不指定域名 默认就是可以子域可用的),格式为 .xx.com;
    4. 再通过修改hosts文件 解析一个子域名映射到 127.0.0.1,如 sub.xx.com;然后通过访问子域名+开发服务端口如 sub.xx.com:8080,就可以实现本地开发时访问需要网关验证的资源了。
    5. cookie 同域与否不受端口影响,与资源共享的同域概念有区别;但是如果登录网关的请求是https且 网关设置的cookie标记了 secure, 那么开发服务也必须要启用https,如 https://sub.xx.com:8080

cookie 文档

posted @ 2024-10-30 20:20  大_大汤  阅读(6)  评论(0编辑  收藏  举报