supabase 규칙 설정 / 제한된 유저만 db 를 만질 수 있도록

이건개발·2024년 8월 4일
0

줄거리

project url 과 api key 가 없으면 아무도 db를 몬만지게됩니다. 이러면 참 편한데

이미지 업로드는 마음대로 할 수 있게 해야해서
프론트엔드에 project url 과 api key 가 노출 되게 되었습니다.

그래서 db 는 특정유저말고는 못쓰게 막아야합니다.
어쩔수 없이 인증 기능을 활용할 수 밖에 없군요

유저 만들기

Authentication 에서 유저를 생성할 수 있습니다.
id, 암호를 보관해두고 이 유저를 백엔드에서 인증해서 db 를 만지면 될꺼 같습니다.

로그인하는 방법 코드는 아래 참고

// 생성
var supabase = createClient(project_url, api_key);

// 인증
const result_auth = await supabase.auth.signInWithPassword({
    email: "아이디",
    password: "암호",
  });

일이 좀 늘게 되는데요 테이블마다 select insert update delete 의 규칙을 입력해야합니다.

시간은 얼마 안걸리는데 테이블이 많은 경우엔 피곤하겠군요 update 는 약간 다르게 생겨는데 그것도 신경써야합니다.

규칙 설정

  1. Authentication -> Policies 로 갑니다.
  2. 테이블에 보시면 Enable RLS 가 있다면 눌러서 RLS 를 켭니다.
  3. Create policy 를 눌러 select insert update delete 전부를 각각 셋팅해야합니다. 테이블 마다 4번


설정한 데이블의 모슴

Applied to: [auth~~] 외부에선 이부분이 중요해 보입니다.

create policy 하시면

  1. 오른쪽에 select insert ~~ 부분이 있습니다. 하나 고르시구요

  2. Target Roles 를 눌러
    authenticated 만 체크 표시 해줍니다.

  3. 키보드로 입력할 수 있는 부분이 제한되어있는데
    무조건 true 입력합니다.
    인증된 사람은 사용할 수 있다는 의미입니다.

  4. update 는 특별히 두개의 부분을 키보드로 입력할 수 있습니다. 둘다 true 로 적습니다.

  5. 저장하면 문법 검사하고 나가집니다.

계정만들기를 제공할일은 없으니
프론트엔드에서 공개된 정보로는 db 를 만질 방법이 없게됩니다.

profile
게임 개발 / 웹 개발 / 주식 투자 / 은퇴자 / 클라우드타입 / 파이어베이스 / 수퍼베이스 / 유니티

0개의 댓글