웹 프론트엔드 View.js Vue 프로젝트에서 사용자 인증 및 권한 부여를 구현하는 방법

Vue 프로젝트에서 사용자 인증 및 권한 부여를 구현하는 방법

Oct 15, 2023 am 09:09 AM
입증 권한 부여 vue-router(vue路由)

Vue 프로젝트에서 사용자 인증 및 권한 부여를 구현하는 방법

Vue 프로젝트에서 사용자 인증 및 승인을 구현하는 방법

최근 몇 년 동안 프런트 엔드 프레임워크 Vue가 점차 웹 개발의 주류 선택이 되었습니다. Vue 프로젝트를 개발할 때 사용자 인증과 권한 부여는 필수 기능입니다. 이 글에서는 기술 구현 관점에서 Vue 프로젝트에서 사용자 인증 및 권한 부여를 구현하는 방법을 자세히 소개하고 구체적인 코드 예제를 제공합니다.

1. 사용자 인증

사용자 인증은 사용자가 시스템에 액세스할 수 있는 법적 권한이 있는지 확인하기 위해 사용자의 신원을 확인하는 프로세스를 의미합니다. 일반적인 사용자 인증 방법에는 사용자 이름 및 비밀번호 확인, 제3자 로그인 등이 포함됩니다. 다음은 Vue 프로젝트에서 사용자 인증 구현을 소개하는 예로 사용자 이름 및 비밀번호 확인을 사용합니다.

  1. 로그인 페이지 구성 요소 만들기

Vue 프로젝트에서는 먼저 로그인 페이지 구성 요소를 만들어야 합니다. 이 구성 요소에는 사용자 이름과 비밀번호에 대한 입력 상자와 로그인 버튼이 포함되어 있습니다. 사용자가 로그인 버튼을 클릭하면 백엔드 API를 호출하여 인증을 수행합니다.

샘플 코드는 다음과 같습니다.

<template>
  <div>
    <input v-model="username" placeholder="请输入用户名" />
    <input v-model="password" placeholder="请输入密码" type="password" />
    <button @click="login">登录</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      username: '',
      password: '',
    };
  },
  methods: {
    login() {
      // 调用登录API,验证用户名和密码
      // 如果验证成功,将用户信息存储到本地或会话存储中
    },
  },
};
</script>
로그인 후 복사
  1. 사용자 이름과 비밀번호 확인

로그인 방법에서 백엔드 API를 호출하여 사용자 이름과 비밀번호가 올바른지 확인합니다. 검증에 성공하면 사용자 정보를 로컬 저장소나 세션 저장소에 저장하여 후속 접근 및 권한 제어를 용이하게 할 수 있습니다.

샘플 코드는 다음과 같습니다.

methods: {
  login() {
    // 调用登录API,验证用户名和密码的正确性
    api.login(this.username, this.password)
      .then(response => {
        const { token, userInfo } = response.data;
        // 将token和用户信息存储到本地存储或会话存储中
        localStorage.setItem('token', token);
        localStorage.setItem('userInfo', JSON.stringify(userInfo));
        // 跳转到主页或其他需要认证的页面
        this.$router.push('/home');
      })
      .catch(error => {
        console.error('登录失败', error);
      });
  },
},
로그인 후 복사
  1. 인증 전략

사용자 인증 후 승인이 필요한 각 페이지에서는 일반적으로 인증이 필요합니다. 로컬 저장소나 세션 저장소에 있는 사용자 정보를 확인하면 해당 사용자에게 해당 페이지에 대한 접근 권한이 있는지 확인할 수 있습니다.

샘플 코드는 다음과 같습니다.

beforeRouteEnter(to, from, next) {
  // 检查本地存储或会话存储中是否存在用户信息
  const userInfo = localStorage.getItem('userInfo');
  if (userInfo) {
    next();
  } else {
    // 用户未登录,跳转到登录页面
    next('/login');
  }
},
로그인 후 복사

2. 사용자 권한

사용자 권한이란 시스템 리소스에 대한 사용자의 접근 권한을 결정하는 것을 의미합니다. Vue 프로젝트에서는 라우팅 가드 메커니즘을 통해 사용자 권한 관리를 수행할 수 있습니다. 다음은 라우팅 가드를 예로 들어 Vue 프로젝트에서 사용자 인증 구현을 소개합니다.

  1. 라우팅 테이블 정의

Vue 프로젝트에서 권한 제어가 필요한 페이지를 포함하여 라우팅 테이블을 정의합니다.

샘플 코드는 다음과 같습니다.

const routes = [
  {
    path: '/home',
    component: Home,
    // 需要进行权限控制的页面,在路由元信息中定义所需的角色
    meta: { requiresAuth: true, roles: ['admin', 'user'] },
  },
  // 其他路由...
];
로그인 후 복사
  1. 라우팅 가드에서 인증을 수행합니다

Vue의 네비게이션 가드 beforeEach를 사용하여 라우팅 점프 전에 인증 판단을 내립니다. 사용자 정보와 라우팅 메타정보에 정의된 역할 정보를 기반으로 해당 사용자에게 해당 페이지에 접근할 수 있는 권한이 있는지 판단합니다.

샘플 코드는 다음과 같습니다.

router.beforeEach((to, from, next) => {
  const requiresAuth = to.matched.some(record => record.meta.requiresAuth);
  if (requiresAuth) {
    // 检查本地存储或会话存储中是否存在用户信息
    const userInfo = localStorage.getItem('userInfo');
    if (userInfo) {
      const { roles } = JSON.parse(userInfo);
      const requiredRoles = to.meta.roles;
      if (roles.some(role => requiredRoles.includes(role))) {
        // 用户具有访问页面的权限
        next();
      } else {
        // 用户权限不足,跳转到无权限页面
        next('/denied');
      }
    } else {
      // 用户未登录,跳转到登录页面
      next('/login');
    }
  } else {
    // 公开页面,无需授权
    next();
  }
});
로그인 후 복사

위의 코드 예시를 통해 Vue 프로젝트에서 사용자 인증 및 권한 부여 기능을 구현할 수 있습니다. 사용자 인증은 사용자 이름, 비밀번호 및 기타 정보를 확인하여 사용자의 법적 신원을 확인합니다. 사용자 인증은 경로 보호 메커니즘을 사용하여 경로가 점프하기 전에 사용자에게 페이지에 액세스할 수 있는 권한이 있는지 확인합니다. 이러한 기능을 구현하면 안전하고 안정적인 Vue 프로젝트를 구축하는 데 도움이 될 수 있습니다.

위 내용은 Vue 프로젝트에서 사용자 인증 및 권한 부여를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

VUE의 구성 요소의 수명주기 후크를 구성하는 방법 VUE의 구성 요소의 수명주기 후크를 구성하는 방법 Mar 04, 2025 pm 03:29 PM

이 기사에서는 Vue.js 구성 요소에서 Export Default의 역할을 명확히하여 수명주기 후크를 구성하지 않고 내보내기 만하면됩니다. 수명주기 후크는 구성 요소의 옵션 객체 내에서 메소드로 정의됩니다.

VUE Export Default에서 구성 요소의 시계를 구성하는 방법 VUE Export Default에서 구성 요소의 시계를 구성하는 방법 Mar 04, 2025 pm 03:30 PM

이 기사에서는 내보내기 기본값을 사용할 때 vue.js 구성 요소 시계 기능을 명확히합니다. 재산 별 시청, 신중하고 즉각적인 옵션 사용 및 최적화 된 핸들러 기능을 통해 효율적인 시계 사용을 강조합니다. 모범 사례

vuex 란 무엇이며 VUE 응용 프로그램에서 주 관리에 어떻게 사용합니까? vuex 란 무엇이며 VUE 응용 프로그램에서 주 관리에 어떻게 사용합니까? Mar 11, 2025 pm 07:23 PM

이 기사는 vue.js의 주 관리 도서관 인 Vuex를 설명합니다. 그것은 핵심 개념 (상태, getter, 돌연변이, 행동)을 자세히 설명하고 사용법을 보여 주며 더 간단한 대안에 비해 더 큰 프로젝트에 대한 이점을 강조합니다. 디버깅 및 구조

vue.js에서 사용자 정의 플러그인을 어떻게 작성하고 사용합니까? vue.js에서 사용자 정의 플러그인을 어떻게 작성하고 사용합니까? Mar 14, 2025 pm 07:07 PM

기사는 개발, 통합 및 유지 보수 모범 사례를 포함한 Custom Vue.js 플러그인 작성 및 사용에 대해 설명합니다.

VUE 라우터 (동적 경로, 중첩 경로, 노선 경비원)를 사용하여 고급 라우팅 기술을 구현하려면 어떻게해야합니까? VUE 라우터 (동적 경로, 중첩 경로, 노선 경비원)를 사용하여 고급 라우팅 기술을 구현하려면 어떻게해야합니까? Mar 11, 2025 pm 07:22 PM

이 기사는 고급 VUE 라우터 기술을 탐구합니다. 동적 라우팅 (매개 변수 사용), 계층 적 탐색을위한 중첩 경로 및 액세스 및 데이터 가져 오기를 제어하기위한 경로 가드를 다룹니다. 복잡한 경로 관리를위한 모범 사례

vue.js (구성 요소 기반 아키텍처, 가상 DOM, 반응성 데이터 바인딩)의 주요 기능은 무엇입니까? vue.js (구성 요소 기반 아키텍처, 가상 DOM, 반응성 데이터 바인딩)의 주요 기능은 무엇입니까? Mar 14, 2025 pm 07:05 PM

vue.js는 구성 요소 기반 아키텍처, 성능을위한 가상 DOM 및 실시간 UI 업데이트를위한 반응성 데이터 바인딩으로 웹 개발을 향상시킵니다.

Vue CLI를 다른 빌드 대상 (개발, 생산)을 사용하도록 어떻게 구성합니까? Vue CLI를 다른 빌드 대상 (개발, 생산)을 사용하도록 어떻게 구성합니까? Mar 18, 2025 pm 12:34 PM

이 기사는 다양한 빌드 대상에 대해 VUE CLI를 구성하고, 환경을 스위치하고, 생산 빌드를 최적화하며, 디버깅을위한 개발의 소스 맵을 보장하는 방법을 설명합니다.

컨테이너화 된 배포에 Docker와 함께 VUE를 어떻게 사용합니까? 컨테이너화 된 배포에 Docker와 함께 VUE를 어떻게 사용합니까? Mar 14, 2025 pm 07:00 PM

이 기사에서는 컨테이너의 VUE 애플리케이션의 설정, 최적화, 관리 및 성능 모니터링에 중점을 둔 Docker와 함께 VUE를 사용하여 배포를 위해 사용합니다.

See all articles