V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ningmengshule
V2EX  ›  问与答

提问:前后端分离项目中,怎样处理后端接口重定向的问题?

  •  
  •   ningmengshule · 91 天前 · 742 次点击
    这是一个创建于 91 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前调试,为了避免跨域,是用了代理的方式,如:指定 /abc 前缀,没有 /abc 开头的都是访问前端 4200 端口的路由,有 /abc 前缀的的就代理到后端 8080 端口去
    例如

    • localhost:4200/abc/** ====> localhost:8080/**
    • localhost:4200/abc/user/2 ====> localhost:8080/user/2

    现在的几个问题

    • 项目集成了 SpringSecurity 做授权管理。其中有一个点:请求者没有通过认证或者过期的话,就会将请求强制跳转到指定的映射去(即重定向无法避免
    • 然而后台重定向返回的链接是 /login 而没有 /abc 前缀,导致前端实际访问的是 localhost:4200/login,(它没有代理访问,而是从本地路由去找了)从而引发 404
    • 但如果 后台重定向返回的链接强行加个 /abc 前缀,确实能访问到 localhost:8080/login 了,但是此时它的 controller 映射却变成 /abc/login 了,从而也匹配不上

    所以想请问大家是怎么做的,或者有更好的方法来处理。

    5 条回复    2021-07-18 13:30:08 +08:00
    cslive
        1
    cslive   91 天前
    前端代理与后端有什么关系,没有登录直接返回 401,前端路由到登录页面
    vruzo
        2
    vruzo   91 天前 via iPhone
    由前端去判断是否重定向
    clickhouse
        3
    clickhouse   91 天前
    都前后端分离了,后端只返回状态码,重定向与否,重定向到哪里,前端自己控制。
    binux
        4
    binux   90 天前 via Android
    前后端分离了重定向到 /login 到底给谁看?这属于前后端没有分离干净。
    zxCoder
        5
    zxCoder   90 天前
    前后端分离是由前端控制路由的吧
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1016 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 23:07 · PVG 07:07 · LAX 16:07 · JFK 19:07
    ♥ Do have faith in what you're doing.