IT/React

React+Tyscript (2) DB연결(supabase)

얍연구소장 2026. 8. 8.

supabase 설치

npx expo install @supabase/supabase-js @react-native-async-storage/async-storage

.env 파일 생성(.gitignore에도 추가 권장)

supabase 테이블 구조

이메일 기반 로그인(signWithPassword)

https://supabase.com/docs/reference/javascript/auth-signinwithpassword

 

JavaScript: signInWithPassword | Supabase Docs

 

supabase.com

        // 1) Auth 로그인 API
        const { data, error } = await supabase.auth.signInWithPassword({
            email, password,
        })

        if(error) {
            console.info('로그인 실패:', error.message)
            alert('로그인 실패. 다시 시도해주세요.')
            return
        }

 

사용자 정보 가져오기(getUser)

https://supabase.com/docs/reference/javascript/auth-getuser

 

JavaScript: getUser | Supabase Docs

jwt (Optional) Takes in an optional access token JWT. If no JWT is provided, the JWT from the current session is used.

supabase.com

        // 2) tb_user 확인 (user_uuid = auth 유저 id)
        const { data: userData, error: userError } = await supabase.auth.getUser()
        if(userError || !userData.user) {
          alert('로그인 정보를 가져오지 못했습니다.');
          return;
        }

        const { data: profile, error: profileError } = await supabase
            .from('tb_user')
            .select('*')
            .eq('user_uuid', userData.user.id)
            .maybeSingle()

        if(profileError) {
          console.info('profile error', profileError.message)
          alert('프로필 정보를 가져오지 못했습니다.');
          return;
        }

        if (!profile) {
          alert('가입된 정보가 없습니다.')
          return
        }

        // 3) App에 알려서 home으로 전환
        console.info('로그인 성공', profile.user_id, profile.nickname)
        onLoginSuccess?.()

'IT > React' 카테고리의 다른 글

React+Tyscript (1) 로그인폼 생성  (0) 2026.08.08

댓글