Vercel에서 React 및 NodeJS로 SuperToken을 배포하는 방법
시작하기
SuperTokens를 시작하려면 Recipe Guides page을 방문하여 애플리케이션에 원하는 로그인 방법을 선택하십시오. 가이드를 선택한 후 빠른 설정 섹션 또는 선택한 프레임워크와의 통합을 위한 섹션 중 하나를 따릅니다.
통합 방법email password + social login with express and react에 대한 블로그 게시물도 있습니다.
Vercel 배포를 위한 애플리케이션 재구성
로컬 시스템에서 기본 구현을 완료한 후 Vercel에 배포할 수 있도록 다음을 수행하여 애플리케이션을 변환하려고 합니다.
api
폴더를 만듭니다. 이 폴더에는 Vercel에 배포할 수 있는 API 논리가 포함됩니다. 이 폴더에 있는 index.js
파일을 통해 API의 진입점을 노출할 것입니다. index.js
를 열고 아래와 같이 파일 끝에서 내보내기app
module.exports = app;
Note: We are deploying our backend as a standalone express app, and not with
/pages/api
serverless functions that Vercel provides. If you want to deploy using/pages/api
, then you can check out our nextJS framework integration guide that's within the recipe guide.
Vercel 배포가 작동하도록 appInfo 구성 변경
Vercel에 대한 프로덕션 및 검사 사이트에서 프로젝트를 실행하려면
websiteDomain
및 appDomain
가 Vercel에서 생성된 URL을 가리키도록 해야 합니다. 프로덕션 URL은 앱에 대해 항상 동일하지만 검사 URL은 계속 변경됩니다. 이 동적 조건에서 작동하려면 apiDomain
및 websiteDomain
값을 동적으로 설정해야 합니다.백엔드에서
appInfo = {
appName: "My App",
apiDomain: process.env.VERCEL_URL,
websiteDomain: process.env.VERCEL_URL,
apiBasePath: "/api/auth",
websiteBasePath: "/auth",
},
Vercel은 검사 URL/생산 URL(로드된 사이트에 따라 다름)과 동일한 백엔드에 환경 변수
process.env.VERCEL_URL
를 제공합니다. 따라서 이를 사용하여 apiDomain
및 websiteDomain
값을 동적으로 설정합니다.프론트엔드에서
window.location.origin
를 사용하여 현재 로드된 URL을 가져오고 이를 apiDomain
및 websiteDomain
로 설정할 수 있습니다. 이렇게 하면 검사 URL이 계속 변경되더라도 여전히 현재 도메인을 가리킵니다.appInfo = {
appName: "TodoApp",
apiDomain: window.location.origin,
websiteDomain: window.location.origin,
apiBasePath: "/api/auth",
websiteBasePath: "/auth",
},
This only works if the frontend and backend of your application have the same domain. If your backend is hosted elsewhere and you use Vercel only for the frontend, be sure to change the
apiDomain
on the frontend and backend to point to your backend server. In this case however, your app may not function properly for inspect deployments since your backend server has no way of knowing what the inspect URL of the frontend site would be on each deployment.
CORS 미들웨어 업데이트
또한 CORS 미들웨어 원본을
VERCEL_URL
환경 변수로 업데이트해야 합니다.app.use(
cors({
origin: process.env.VERCEL_URL,
allowedHeaders: ['content-type', ...SuperTokens.getAllCORSHeaders()],credentials: true,
})
);
Vercel 구성 및 배포
애플리케이션 코드의 백엔드 및 프런트엔드가 업데이트된 상태에서 애플리케이션의 루트 디렉터리에
vercel.json
파일을 생성하여 Vercel에 모든 트래픽을 /api/*
경로의 고속 백엔드 서버로 푸시하도록 지시합니다.{
"rewrites": [{ "source": "/api/(.*)", "destination": "/api" }]
}
마지막으로 Vercel에 앱을 배포하려면 프로젝트의 루트에서 vercel 명령을 실행해야 합니다.
vercel
배포되면 검사 URL 및 프로덕션 URL에서 로그인 기능을 테스트할 수 있어야 합니다.
데모 앱
또한 express 및 React를 통한 이메일 비밀번호 로그인이 있고 Vercel과 함께 작동하도록 구성된 a demo app on our GitHub도 있습니다. live preview도 볼 수 있습니다.
SuperTokens의 Folks가 작성했습니다. 즐거운 시간 되셨기를 바랍니다! 우리는 Discord 서버에서 항상 사용할 수 있습니다. 질문이 있거나 도움이 필요하면 저희와 함께하십시오.
Reference
이 문제에 관하여(Vercel에서 React 및 NodeJS로 SuperToken을 배포하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/supertokens/how-to-deploy-supertokens-with-react-and-nodejs-on-vercel-37hc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)