【问题标题】:Redirection problem from Springboot to Angular从 Springboot 到 Angular 的重定向问题
【发布时间】:2020-06-02 03:34:16
【问题描述】:

我们的团队使用 Angular 前端和 Springboot 后端制作了一个 Web 应用程序。采购员在用户登录的情况下询问谷歌身份验证。在登录组件上有一个锚标签,点击后谷歌页面跳转,我们可以选择我们的个人资料。之后,Google 将用户数据发送到 Springboot,在那里它会对其进行验证,然后创建一个令牌。

我的问题是在 Angular 中我们使用 HashLocationStrategy,这个 url 有一个 auth 组件: http://localhost:4200/#/auth,等待路由参数中的token。在正常情况下,它看起来像“http://localhost:4200/#/auth?token=25jlsjflsfdlslfj....”。 Springboot中还有一个变量:public static final String ALTERNATIVE_REDIRECT_URI = "http://localhost:4200/#/auth"; 但它不能与 # 一起使用,因为通过这些设置,Spring 将令牌发送回基本路由,一会儿 ?token=..... 会显示在 url 上并且在页面重新呈现之后。没有 HashLocationStrategy 它运行良好 (http://localhost:4200/auth)。你能推荐一个解决方案吗?我需要在 Springboot 中如何声明 Url?

【问题讨论】:

    标签: angular spring-boot authentication url


    【解决方案1】:

    回答

    Angular 在一个补丁区运行它的代码,其中 addEventListener()、setTimeout() 和其他异步 API 被打补丁,以便在异步操作发生时通知 Angular 以重新运行更改检测。这使得变更检测非常有效。当调用以某种方式绕过 Angulars 区域的代码时,Angulars 更改检测不会启动。如果从在 Angulars 区域之外调用的代码调用方法(甚至是来自 Angular 组件或类似的方法),则一切都在该区域之外运行,直到这事件已完全处理。使用 zone.run(...) 可以强制执行回到 Angulars 区域。

    visit here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-28
      • 1970-01-01
      • 1970-01-01
      • 2021-01-09
      • 2021-08-09
      • 1970-01-01
      • 1970-01-01
      • 2023-02-13
      相关资源
      最近更新 更多