Post

Supabase Auth 를 통해 로그인 / 회원가입 구현

로그인 기능을 구현해본 적이 없어, 이번에 간단한 프로젝트를 통해 구현해보려고 한다. 물론, BaaS 를 이용해 구현하는 것이긴 하지만 직접 기능을 구현해보는 것에 의의가 있으니 빠르게 해보도록 하자.

전체적인 구현은 Supabase Auth 의 공식문서를 따라 진행할 예정이다.

인증(Authentication)과 인가(Authorization)

여러 번 다뤄본 내용이지만, 인증과 인가에 대해서 다시 한 번 짚고 넘어가자.

  • 인증: 사용자(유저)가 누구인지 신원을 파악하는 과정이다.
  • 인가: 올바르게 인증을 한 유저가 어떤 자원에 접근할 수 있는지 권한을 확인하는 과정이다.

로그인 / 회원가입은 이 두 가지 과정이 핵심이 된다.

네이버나 다음 등의 카페 등급 제도를 떠올리면 이해하기 쉬울 것이다. 카페에 가입을 하지 않아도 볼 수 있는 게시글이 있고, 가입을 해야만 조회가 가능한 것들이 있다.

가입을 하더라도 등급을 통해 회원 사이에서도 조회가 가능한 범위가 다르기도 했다. 이런 인증 / 인가를 Supabase 를 통해 해결해보자.

Supabase 에서 제공하는 로그인 방식

  1. Password-based (아이디, 비밀번호 입력 방식)
  2. Email(magic link / OTP, 비밀번호가 필요 없음)
  3. OAuth 2.0(소셜 로그인)
  4. SAML
  5. 휴대폰 인증

이외에도 익명 로그인 등등 정말 다양한 기능들이 있다. 하지만, Supabase 무료 플랜을 사용한다면 소셜 로그인을 제외하고는 인증을 1시간에 2-3번 정도 가능한 것으로 알고 있다.

따라서, 제한 없이 이용하려면 Supabase 를 통한 이메일 인증 방식은 별도의 SMTP 서버가 필요하다. 그래도, 이메일 방식을 이번에 시도해보고 싶은 마음이 있어 이메일과 소셜 로그인 두 가지를 시도해보고 최종적으로는 소셜 로그인만 이용하도록 할 생각이다.

우선은 당장 추가 세팅이 필요하지 않은 OAuth 부터 해보도록 하자.

This post is licensed under CC BY 4.0 by the author.