V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
ningmengshule
V2EX  ›  问与答

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

  •  
  •   ningmengshule · Jul 17, 2021 · 2327 views
    This topic created in 1746 days ago, the information mentioned may be changed or developed.

    目前调试,为了避免跨域,是用了代理的方式,如:指定 /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 replies    2021-07-18 13:30:08 +08:00
    cslive
        1
    cslive  
       Jul 17, 2021
    前端代理与后端有什么关系,没有登录直接返回 401,前端路由到登录页面
    vruzo
        2
    vruzo  
       Jul 17, 2021 via iPhone
    由前端去判断是否重定向
    clickhouse
        3
    clickhouse  
       Jul 17, 2021
    都前后端分离了,后端只返回状态码,重定向与否,重定向到哪里,前端自己控制。
    binux
        4
    binux  
       Jul 18, 2021 via Android
    前后端分离了重定向到 /login 到底给谁看?这属于前后端没有分离干净。
    zxCoder
        5
    zxCoder  
       Jul 18, 2021
    前后端分离是由前端控制路由的吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5908 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 01:55 · PVG 09:55 · LAX 18:55 · JFK 21:55
    ♥ Do have faith in what you're doing.