튜토리얼: 암호키를 Nuxt.js에 통합하는 방법

WBOY
풀어 주다: 2024-09-04 16:37:02
원래의
943명이 탐색했습니다.

소개

이 튜토리얼에서는 암호키 인증을 Nuxt.js 애플리케이션에 통합하는 과정을 안내합니다. 원활한 비밀번호 로그인 경험을 위해 Nuxt.js 프로젝트 설정부터 Corbado UI 구성요소 구현까지 모든 것을 다룹니다.

Tutorial: How to Integrate Passkeys into Nuxt.js

코드로 바로 이동하려는 경우 GitHub 저장소에서 전체 예제를 찾을 수 있습니다.

여기에서 전체 블로그 게시물을 읽어보세요

전제 조건

구현을 시작하기 전에 Nuxt.js, HTML, CSS 및 JavaScript에 대한 기본적인 이해가 있는지 확인하세요. 또한 개발 컴퓨터에 Node.js 및 NPM이 설치되어 있어야 합니다.

프로젝트 구조

다음은 Nuxt.js 프로젝트 구조에 대한 간단한 개요입니다.

.
├── .env
├── package.json
├── nuxt.config.ts
├── pages
|   ├── index.vue 
|   └── profile.vue
└── layouts 
    └── default.vue
로그인 후 복사

이러한 구조는 패스키 인증 구현의 기반이 됩니다.

Nuxt.js 프로젝트 설정

시작하려면 새 Nuxt.js 프로젝트를 초기화하세요

npx nuxi@latest init passkeys-demo-nuxtjs
cd passkeys-demo-nuxtjs
npm install
npm run dev
로그인 후 복사

이렇게 하면 http://localhost:3000에서 애플리케이션이 시작됩니다.

Corbado의 패스키 인증 구현

Corbado 계정 설정

먼저 개발자 패널을 통해 Corbado 계정에 가입하세요. 설정 중에 제품으로 "Corbado Complete"를 선택하고 프레임워크로 "Nuxt.js"를 지정하세요. 로컬 개발 환경에 따라 애플리케이션 URL과 신뢰 당사자 ID를 구성하세요.
Corbado 개발자 패널에서 검색할 수 있는 프로젝트 ID로 .env 파일을 업데이트하세요.

VITE_CORBADO_PROJECT_ID=<your-project-id>
로그인 후 복사

Corbado UI 구성 요소 포함

Corbado web-js 라이브러리 설치:

npm i @corbado/web-js
npm i -D @corbado/types
로그인 후 복사

다음으로 /layouts/default.vue에서 레이아웃을 설정하여 Corbado 프로젝트를 초기화하세요.

<script setup lang="ts">
  import Corbado from "@corbado/web-js"
  import { onMounted } from "vue";const isInitialized = useState('isInitialized', () => false);
  const projectId = import.meta.env.VITE_CORBADO_PROJECT_ID;
  onMounted(async () => {
    await Corbado.load({
      projectId: projectId,
      darkMode: "off"
    });
    isInitialized.value = true;
  });
</script>
<template>
  <div v-if="isInitialized">
    <slot/>
  </div>
</template>
로그인 후 복사

이 설정을 사용하면 구성 요소를 렌더링하기 전에 Corbado 프로젝트가 초기화됩니다.

로그인 페이지 만들기

이제 /pages/index.vue에 로그인 페이지를 만들어 보겠습니다.

<script setup lang="ts">
  import Corbado from "@corbado/web-js"
  import { onMounted } from "vue";const authElement = useState<HTMLDivElement | undefined>('authElement', () => undefined);
  onMounted(() => {
    if (authElement.value) {
      Corbado.mountAuthUI(authElement.value, {
        onLoggedIn: () => {
          navigateTo("/profile");
        },
      });
    }
  });
</script>
<template>
  <div ref="authElement"></div>
</template>
로그인 후 복사

이 코드 조각은 인증 UI를 설정하고 로그인 성공 후 리디렉션을 처리합니다.

프로필 페이지 설정

로그인하면 사용자는 /pages/profile.vue에 생성할 프로필 페이지로 리디렉션됩니다.

<script setup lang="ts">
  import Corbado from "@corbado/web-js"const user = Corbado.user;
  async function handleLogout() {
    await Corbado.logout();
    await navigateTo("/");
  }
</script>
<template>
  <div>
    <div v-if="user">
      <h1>Profile Page</h1>
      <p>
        User-ID: {{ user.sub }}
        <br />
        Email: {{ user.email }}
      </p>
      <button @click="handleLogout">Logout</button>
    </div>
    <div v-else>
      <p>You're not logged in.</p>
      <p>
        Please go back to <NuxtLink href="/">home</NuxtLink> to log in.
      </p>
    </div>
  </div>
</template>
로그인 후 복사

이 페이지에는 인증 성공 후 사용자 정보가 표시되며 로그아웃 버튼이 포함되어 있습니다.
다음을 사용하여 애플리케이션을 실행하세요.

npm run dev
로그인 후 복사

Tutorial: How to Integrate Passkeys into Nuxt.js

결론

이 가이드에서는 Corbado의 UI 구성 요소를 사용하여 Nuxt.js 애플리케이션에서 암호 키 기반 인증을 구현하는 방법을 시연했습니다. 이 설정을 사용하면 웹 애플리케이션에서 안전하고 사용자 친화적인 로그인 환경을 제공할 수 있습니다. 세션 관리 및 기타 기능에 대한 자세한 내용은 Corbado 설명서 또는 전체 블로그 게시물을 참조하세요.
다음 단계를 따르면 현대적인 비밀번호 없는 인증으로 Nuxt.js 애플리케이션의 보안을 강화할 수 있습니다.

위 내용은 튜토리얼: 암호키를 Nuxt.js에 통합하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!