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 는 약간 다르게 생겨는데 그것도 신경써야합니다.
설정한 데이블의 모슴
Applied to: [auth~~] 외부에선 이부분이 중요해 보입니다.
create policy 하시면
오른쪽에 select insert ~~ 부분이 있습니다. 하나 고르시구요
Target Roles 를 눌러
authenticated 만 체크 표시 해줍니다.
키보드로 입력할 수 있는 부분이 제한되어있는데
무조건 true 입력합니다.
인증된 사람은 사용할 수 있다는 의미입니다.
update 는 특별히 두개의 부분을 키보드로 입력할 수 있습니다. 둘다 true 로 적습니다.
저장하면 문법 검사하고 나가집니다.
계정만들기를 제공할일은 없으니
프론트엔드에서 공개된 정보로는 db 를 만질 방법이 없게됩니다.