heartright-co / expo-bare-test-module_payment

0 stars 0 forks source link

amplify 구상 #8

Open byyoungjin opened 3 years ago

byyoungjin commented 3 years ago
byyoungjin commented 3 years ago

Auth logic

Context Api 로 뿌려주는게 일반적인듯 https://heartbeat.fritz.ai/how-to-manage-authentication-flows-in-react-native-with-react-navigation-v5-and-firebase-860f57ae20d3

정리

aws-amplify Hub 이용해서

  1. auth 바뀌는것 check,
  2. customOAuthState 이벤트 이용해서 fedrated signin 이후 로직 진행(추가 유저정보 입력, db 에 user 저장 )
  3. context api 이용해서 auth, user 정보 저장.
  4. 앱 최상단에 useEffect 이용해서 auth , user check, -> context 에 state hydrate
byyoungjin commented 3 years ago

app state 관리

auth, user 정도만 global context 로 관리하고, 나머지는 모두 hook 으로 관리

byyoungjin commented 3 years ago

db access 패턴 관리

따로 api 를 만들지 말고, graqphql 에서 auto generated 된 코드를쓴다.

이런식으로 사용

 const providerKey = cognitoUser.username;
    const userOfProviderKey = await API.graphql({
      query: userByProviderKey,
      variables: { providerKey },
    });

    const dbUser = userOfProviderKey.data.userByProviderKey.items[0] ?? null;