Netlify GoTrue 사용자를 Appwrite로 마이그레이션하는 방법

Appwrite 1.0을 통해 다양한 플랫폼의 사용자를 Appwrite로 가져올 수 있음을 발표하게 되어 기쁩니다. 이러한 플랫폼 중 하나는 Netlify GoTrue입니다. 이 자습서에서는
GoTrue 기반 플랫폼에서 사용자를 내보내고 Appwrite로 가져오는 방법을 보여드리겠습니다.

먼저 Appwrite가 정확히 무엇인지 궁금할 것입니다. Appwrite은 Docker 마이크로 서비스 세트로 패키지된 오픈 소스 BaaS(Backend-as-a-Service)로 배경 지식이 있는 개발자에게 최신 앱을 빠르고 안전하게 구축하는 데 필요한 도구를 제공합니다.

이 자습서에서는 컴퓨터에 NodeJS이 설치되어 있어야 합니다. 이를 사용하여 GoTrue 사용자를 내보내고 Appwrite로 가져올 것입니다. 또한 이 자습서의 끝 부분에서 시작하기 위해 복사하여 붙여넣을 수 있는 스크립트를 제공합니다.

TL, DR - GitHub to completed project

경고: 비밀번호가 6자 미만인 사용자는 Appwrite에서 작동하지 않습니다. 이 경우 사용자에게 이메일을 보내 비밀번호를 재설정하는 것이 좋습니다.

이제 첫 번째 단계로 넘어 갑시다.

GoTrue에서 사용자 내보내기



GoTrue에서 사용자를 내보내려면 Postgres 데이터베이스에 연결하고 auth.users 테이블을 덤프해야 합니다. 이것은 node-postgres 노드 모듈을 사용하여 수행할 수 있습니다.

node-postgres 모듈 사용



먼저 프로젝트 폴더를 만들고 npm을 사용하여 node-postgres 모듈을 설치합니다.

npm install pg


다음으로 main.js라는 파일을 만들고 다음 코드를 추가합니다.

const { Client } = require('pg')

// Connect to your Postgres database
const client = new Client({
    user: 'postgres',
    host: 'postgres_url',
    database: 'postgres',
    password: 'yourpasword',
    port: 5432,
  })

client.connect()

// Dump the auth.users table
client.query('SELECT * FROM auth.users', (err, res) => {
    if (err) {
        console.log(err.stack)
        client.end()
    } else {
        console.log('Recieved ' + res.rowCount + ' users')
        client.end()
        return res.rows
    }
})


이 코드는 GoTrue 데이터베이스에 연결하고 auth.users 테이블을 덤프합니다. 그런 다음 res.rows 변수를 사용하여 사용자에 액세스할 수 있습니다. 다음 섹션에서는 이 코드를 추가하여 사용자를 Appwrite로 가져옵니다.

Appwrite로 사용자 가져오기



이제 GoTrue에서 사용자를 내보냈으므로 Appwrite로 가져올 수 있습니다. 이를 위해 NodeJS용 Appwrite Server SDK를 사용할 것입니다.

먼저 NPM을 사용하여 Appwrite SDK를 설치하겠습니다.

npm install node-appwrite


완료되면 이전 섹션에서 작성한 코드를 확장하여 사용자를 Appwrite로 가져옵니다.

파일 맨 위에 다음을 추가하고 Appwrite 인스턴스와 일치하도록 변수를 업데이트하십시오.

const SDK = require('node-appwrite')

const appwriteClient = new sdk.Client()

appwriteClient
    .setEndpoint('http://localhost/v1') // Your API Endpoint
    .setProject('projectKey') // Your project ID
    .setKey('Server API Key') // Your secret API key
    .setSelfSigned() // Use only on dev mode with a self-signed SSL cert
;


그런 다음 client.query 콜백의 코드를 다음으로 덮어씁니다.

console.log('Received ' + res.rowCount + ' users')

for (const user of res.rows) { 
            console.log('Importing user' + user.email)

            await users.createBcryptUser(
                user.id,
                user.email,
                user.encrypted_password
            )
  }

console.log('Successfully Imported ' + res.rowCount + ' users')
client.end()
return res.rows


이 코드는 각 사용자를 반복하고 users.createBcryptUser 메서드를 사용하여 Appwrite에서 새 사용자를 만듭니다. Appwrite API Reference에서 이 방법에 대한 자세한 정보를 찾을 수 있습니다.

모든 작업이 완료되면 node main.js 를 사용하여 스크립트를 실행할 수 있으며 사용자를 Appwrite로 가져올 수 있습니다. 가져오기가 성공했는지 확인하려면 GoTrue에 테스트 계정이 있는지 확인하십시오.

결론



이 자습서에서는 GoTrue 기반 플랫폼에서 사용자를 내보내고 Appwrite로 가져오는 방법을 보여 주었습니다. 시작하기 위해 복사하여 붙여넣을 수 있는 스크립트도 제공했습니다. 질문이나 의견이 있으시면 언제든지 저희 Discord 서버에 가입하십시오.

이 프로젝트의 전체 버전은 GitHub 저장소here에서 찾을 수 있습니다.

앱라이트에 대해 더 알아보기



Appwrite는 오픈 소스 BaaS(Backend-as-a-Service)로 Docker 마이크로 서비스 세트로 패키징되어 모든 배경의 개발자에게 최신 앱을 빠르고 안전하게 구축하는 데 필요한 도구를 제공합니다.

Discord에서 채팅하거나 Appwrite에 대해 자세히 알아보세요.
차세대 웹, Flutter 또는 서버 측 애플리케이션의 백엔드로 Appwrite를 확인하십시오. 다음은 자세한 정보를 제공하는 편리한 링크입니다.
Appwrite Contribution Guide
Appwrite Discord
Appwrite Github
Appwrite Documentation

좋은 웹페이지 즐겨찾기