#30일 Appwrite: Appwrite의 JWT 지원

간단한 소개


#30DaysOfAppwrite은 개발자에게 Appwrite의 모든 기능, 기초 기능부터 클라우드 기능 등 고급 기능까지 이해할 수 있도록 한 달 동안의 활동입니다!그 밖에 우리는 이러한 개념을 실제 세계의 응용 프로그램을 구축할 때 어떻게 응용하는지 보여주는 기능이 완비된 미디어 복제도 구축할 것이다.우리는 또한 우리 개발자를 따르기 위해 감동적인 보상을 제공했다.

JWT 소개


JWT(JSON Web 토큰)는 응용 프로그램에 대한 액세스 토큰을 만드는 데 사용되는 표준입니다.이것은 이렇게 작동합니다. 서버는 사용자의 신분을 검증하고 클라이언트에게 보내는 영패를 생성합니다.후속적인 모든 요청에 대해 클라이언트는 서버가 요청이 특정한 신분에서 온 것을 알 수 있도록 영패를 서버에 보낼 것이다.
형식이 좋은 JWT는 세 개의 직렬 Base64 URL 인코딩 문자열로 구성되어 있으며 점으로 구분(.):

  • Header: 토큰 유형 및 콘텐츠를 보호하는 암호화 알고리즘에 대한 메타데이터를 포함합니다.

  • 유효 부하: 사용자의 신분과 허용된 권한 등 검증 가능한 안전 성명을 포함합니다.

  • 서명: 영패가 믿을 만하고 변경되지 않았는지 확인하는 데 사용됩니다.

  • 이러한 아키텍처는 현대 웹 응용 프로그램에서 매우 효과적이며 사용자를 인증한 후 REST 또는 GraphQLAPI에 대한 API 요청을 수행합니다.
    어쨌든 세션에서 JWTs를 사용하는 것이 항상 권장되는 것은 아닙니다.일반적인 서버 사이드 세션과 쿠키를 결합하여 사용하면 일반적으로 효율이 높고 데이터가 노출되기 쉽지 않다.

    그럼 왜 JWT가 필요할까요?


    현대 네트워크에서는 통상적으로 여러 개의 실체가 서로 통신할 수 있다.일부 기능은 자연히 제한을 받기 때문에 어떤 권한 수여 메커니즘이 필요하다.Appwrite에서는 Cookies를 사용하여 클라이언트와 백엔드가 통신합니다.
    JWT를 사용하면 클라우드 기능, 마이크로 서비스 또는 SSR에서 서버 측의 사용자에게 권한을 부여할 수 있습니다.

    JWT 만들기


    Appwrite의 0.8 버전은 JWT를 도입하여 웹이나 Flatter SDK를 사용하면 JWT를 쉽게 생성할 수 있다.JWT는 인증과 권한 수여에 사용되기 때문에 인증을 거친 후에만 생성할 수 있습니다.

    그물 모양의 물건


    appwrite.account.createJWT().then(response => {
        console.log(response); // Success
    }, error => {
        console.log(error); // Failure
    });
    

    떨리다


    account.createJWT().then((response) {
        print(response);
    }).catchError((error) {
        print(error.response);
    });
    
    createJWT() 메서드는 다음과 같은 객체를 수신합니다.
    {
      jwt: "eyJhbGciOiJIUzI1NiIsInR5cCI6I..."
    }
    
    이 JWT의 유효 기간은 15분이며, 사용자 계정은 60분마다 10회만 생성할 수 있습니다.

    JWT 및 서버 SDK


    이제 JWT를 사용할 수 있으므로 사용자가 서버에 로그인하거나 API 키를 제공하지 않고도 서버에서 작업을 수행할 수 있습니다.
    시범을 보이기 위해서, 현재 사용자를 얻기 위해 노드를 사용해 봅시다.js 스크립트:
    mkdir appwrite-jwt-test
    cd appwrite-jwt-test
    npm init -y
    
    현재 node-appwrite을 의존항으로 추가:
    npm install node-appwrite
    
    index.js 파일을 작성하여 다음을 포함합니다.
    const appwrite = require('node-appwrite');
    const client = new appwrite.Client();
    const account = new appwrite.Account(client);
    
    client
        .setEndpoint("[ENDPOINT]") // Your API Endpoint
        .setProject("[PROJECT_ID]") // Your project ID
        .setJWT("[INSERT_JWT_HERE]") // Your users JWT
    ;
    
    account.get().then(r => console.log(r));
    

    Remember to fill out the endpoint, project ID and JWT. Keep in mind that a JWT is only valid for 15 minutes after generation.


    현재 우리는 node index.js으로 이 파일을 실행할 수 있다. 만약 모든 것이 순조롭다면, 우리는 사용자의 대상을 볼 수 있을 것이다👏

    클라우드 함수가 있는 JWT


    Rest API를 통해 클라우드 함수를 수행할 수 있다는 것을 기억하십니까?사용자가 이렇게 하면 기본적으로 이 함수를 실행하는 사용자는 APPWRITE_FUNCTION_JWT 환경 변수에서 클라우드 함수에 JWT를 전달합니다.
    이렇게 하면 클라이언트에서 JWT를 만들어 전달할 필요조차 없습니다.🎉

    JWT 및 SSR


    Appwrite Web SDK의 버전 3.0.0이 릴리즈됨에 따라 동일한 구성으로 재구성했습니다.이것은 JavaScript 생태계에서 매우 중요하다. SSR이 날로 유행하면서 라이브러리는 브라우저에서 작업해야 하고 서버에서 노드를 사용해야 하기 때문이다.js.
    이것이 바로 우리가 서버 SDK의 setJWT(jwt) 방법도 웹 SDK에 추가한 이유입니다. 개발자가 같은 SDK를 사용하여 클라이언트와 서버 측의 조작을 할 수 있고 Next.js, Nuxt.jsSvelte Kit 등 프레임워크를 사용할 수 있습니다.

    크레디트


    우리는 네가 이 문장을 좋아하길 바란다.너는 소셜 미디어에서 우리의 모든 댓글을 주목할 수 있다.전체 활동 일정은 here에서 확인할 수 있습니다.
  • Discord Server

  • Appwrite Homepage
  • Appwrite's Github
  • Appwrite, 외계인 또는 유니콘에 대해 더 알고 싶으시면 언제든지 연락 주세요.🦄. 내일 글 계속 봐주세요!그 전에👋

    좋은 웹페이지 즐겨찾기