当前位置: 首页 > 知识库问答 >
问题:

Nuxt js使用laravel passport在安全页面上刷新页面后重定向到登录页面

隆飞宇
2023-03-14

我正在使用laravel passport进行NUXT身份验证。我遵循这一文件:

https://auth.nuxtjs.org/providers/laravel-passport.html#usage

我可以在我的nuxt-app上成功登录。它在登录后重定向到仪表板,其中仪表板具有中间件:'auth'。问题是。当我刷新仪表板时,它会重定向回登录页面。在js控制台上,$auth.is身份验证返回true,但在SSR上返回false。我猜,问题出在中间件: auth上,我不确定。我已经在谷歌上搜索,但没有解决方案。我已经试过这个了:

https://github.com/nuxt-community/auth-module/issues/478

我的代码如下所示:

使用Nuxt前端实现Laravel 7护照身份验证

有人知道解决办法吗?

共有2个答案

邵劲
2023-03-14

我最近才面对这个问题,虽然这个答案可能对行动组没有用,但我相信它将来可能对其他人有用。

这就是我们在下面所做的,在routes/api.php中找到的api routes下,添加访问laravel应用程序api的nuxt js域,使用下面的代码-确保专门针对您自己的用例进行格式化

$landingRoutes = function () {
//your routes
};
Route::group(['domain' => config('app.DASHBOARD_DOMAIN1')], $landingRoutes);
Route::group(['domain' => config('app._DASHBOARD_DOMAIN2')], $landingRoutes);

我也在我的博客上写过

袁成化
2023-03-14

http_onlycookie不适用于SSR。所以你需要制作一个nuxt插件。在那里,你应该检查是否access_token不存在,并且user存在于cookie中(当用户登录时,你应该制作一个带有用户信息或用户标识的cookie,就我个人而言,我会使用Vuex和vuex-persistedstate相结合)。如果用户存在于cookie中,而access_token不存在,则应刷新令牌。

plugins/refresh token.js

import clientCookies from 'js-cookie';

/**
 * For refreshing the token on page reload.
 *
 * @param  {Object} context.store
 * @return {Void}
 */
export default function ({store}) {
  window.onNuxtReady(() => {
    let token = clientCookies.get('x-access-token');
    let user = store.getters['user/currentUser'];

    if (user && ! token) {
      store.dispatch('auth/refreshToken')
        .catch(errors => {
          store.dispatch('auth/signUserOut');
        });
    }
  });
}

有关更多信息,请阅读本文

 类似资料:
  • 我在我的Angular 5应用程序中使用keycloak JavaScript适配器,虽然我的登录和重定向工作,但问题是每当我刷新我的ng应用程序时,它会再次要求keycloak登录,尽管我看到我的会话仍然在 /auth/realms/{image a领域名称}/帐户上处于活动状态。 正如我从KeyClope JS适配器文档中了解到的那样https://www.keycloak.org/docs/

  • 记录器文件中的日志- org.springframework.Security.Access.event.loggerlistener-安全授权失败,原因是:org.springframework.Security.Access.accessdeniedexception:访问被拒绝;通过身份验证的主体:org.springframework.security.authentication.ano

  • 问题内容: 我正在做一个简单的论坛,由一系列论坛组成,每个论坛分别代表首页,主题,postitit,登录名和用户列表页面。在某些页面上,当用户未登录时会出现一个链接。 我想要实现的是在登录后触发重定向(在RequestDispatcher上使用forward()),以便浏览器返回到用户在单击登录链接之前所在的页面。为此,我看到了两种解决方案。 第一种解决方案是使用带有登录按钮的HTML 和一个不可

  • 我现在一直在努力使用我的登录页面来让组件呈现Loggedin组件。我的前端是Reactjs,后端是NodeJS。我对nodejs、expression和react都是新手。 在loginform组件上,我使用fetch进行了一次post,它将用户名和密码传递给后端的相应endpoint。没问题。在后端,它读取我存储用户(不使用任何数据库)的jsonfile来查找匹配项,如果用户名和密码都匹配,则它

  • 我有一个文件,带有一个,具有和字段,在上,它用

  • 这是views.py的内容: 在转到“/”时,我被重定向到“/accounts/login”,它将我带到登录页面。我输入用户名和密码后,在“验证”打印语句printd“登录”到终端。 到目前为止还不错。现在,我不再被重定向到“/”,而是再次被重定向到“/accounts/login”,并再次显示输入用户名和密码的页面。为什么?