Laravel Passport를 사용하는 Nuxt JS가 보안 페이지에서 페이지 새로 고침 후 로그인 페이지로 리디렉션

Aug 19 2020

NUXT 인증에 laravel 패스포트를 사용하고 있습니다. 이 문서를 따르고 있습니다.

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

내 nuxt-app에 성공적으로 로그인 할 수 있습니다. 로그인 후 대시 보드가있는 대시 보드로 리디렉션됩니다 middleware:'auth'. 문제는. 대시 보드를 새로 고치면 로그인 페이지로 다시 리디렉션됩니다. js 콘솔에서는 $auth.isAuthenticatedtrue를 반환하지만 SSR에서는 false입니다. 문제가있는 것 같습니다 middleware:auth. 확실하지 않습니다. 이미 Google에서 검색했지만 해결책이 없습니다. 나는 이것을 이미 시도했다.

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

내 코드는 다음과 같습니다.

Nuxt 프런트 엔드로 Laravel 7 Passport 인증 구현

누구든지 해결책을 알고 있습니까?

답변

1 StefanTanevski Aug 21 2020 at 11:08

http_only쿠키는 SSR로 사용할 수 없습니다. 따라서 nuxt 플러그인을 만들어야합니다. 그리고 거기 에서 쿠키가 존재 access_token하지 않고 존재 하는지 확인해야 user합니다 (사용자가 로그인 할 때 사용자 정보 또는 사용자 ID로 쿠키를 만들어야합니다. 개인적으로 나는 vuex-persistedstate 와 결합 된 Vuex를 사용합니다 ). 사용자가 쿠키에 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');
        });
    }
  });
}

자세한 내용은이 게시물을 읽으십시오.

OlumideOmotoso Sep 15 2020 at 12:54

나는 최근 에이 문제에 직면했지만이 답변은 작전에는 유용하지 않을 수 있지만 앞으로 다른 사람들에게 유용 할 것이라고 생각합니다.

이것은 아래에서 우리가 한 작업입니다. routes / api.php에서 찾을 수있는 api 경로 아래에서 laravel 애플리케이션 API에 액세스하는 nuxt js 도메인을 추가하고 아래 코드를 사용합니다. 자신의 사용 사례에 맞게 형식을 지정해야합니다.

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

여기 내 블로그에도 썼어요