Nuxt.js auth:对于嵌套路由,登录后重定向不会发生,只有基本路由

问题描述

我正在尝试将@nuxtjs/auth模块用于Web应用程序中Okta的OAuth2身份验证。

我的应用程序具有如下URL结构:/browse/{folder}用于查看来自特定文件夹的图像,其中{folder}可以是任何字符串。这是通过创建名为browse.vue的顶级视图,名为browse文件夹以及该文件夹中名为_folder.vue的子组件来实现的。在here中有更多详细信息,请参见Nuxt.js文档。

Screen Shot 2020-08-25 at 9.53.58 PM.png

我已将身份验证保护措施添加_folder.vue文件中。当我导航到/browse时,我被重定向/login,并且从这里开始,OAuth2和Okta都可以正常运行。登录后返回到应用程序时,我将返回到/browse页面

但是,当我导航至/browse/Test之类的文件夹时,登录后我并未重定向回该文件夹。相反,我返回了该应用程序的/视图。从这里开始,如果我再次在地址栏中键入路径,则能够以登录用户的身份成功查看它。这表明登录成功,但是有关重定向的操作却不成功。

通过查看Firefox开发人员工具中的cookie,我注意到导航到auth.redirect时未创建/browse/Test cookie,所以我认为auth模块不知道将重定向到何处。用户登录后。当我导航到/browse时,将创建auth.redirect cookie,并且重定向成功完成。

我是否可以做一些事情来使auth模块能够重定向到这些动态路由,或者这是该模块的错误?有关该模块的所有其他信息在我的应用程序中均正常运行。

我在nuxt.config.js中使用@nuxtjs/auth版本4.9.1的身份验证配置:

  auth: {
    fullPathRedirect:true,redirect:{
      callback:"/login",logout:"/"
    },strategies: {
      social:{
        _scheme: 'oauth2',authorization_endpoint: "https://{my-subdomain}.okta.com/oauth2/v1/authorize",scope: ['openid','profile','email'],access_token_endpoint: "https://{my-subdomain}.okta.com/oauth2/v1/token",response_type: 'id_token',token_type: 'Bearer',client_id: process.env.CLIENT_ID,client_secret:process.env.CLIENT_SECRET,token_key: 'id_token'
      }
    }
  }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)