Quellcode durchsuchen

Test Social Loign 리팩토링 필요

goodboy vor 6 Jahren
Ursprung
Commit
83926b5b95
1 geänderte Dateien mit 69 neuen und 31 gelöschten Zeilen
  1. 69 31
      src/pages/_1_Login.js

+ 69 - 31
src/pages/_1_Login.js

@@ -1,5 +1,5 @@
 import React, {useState} from 'react';
-import { LoginButton, AccessToken } from 'react-native-fbsdk';
+import { LoginButton, AccessToken, LoginManager } from 'react-native-fbsdk';
 import RNKakao from 'react-native-kakao';
 import { NaverLogin, getProfile } from 'react-native-naver-login';
 import { GoogleSignin, GoogleSigninButton, statusCodes } from 'react-native-google-signin';
@@ -14,14 +14,12 @@ const initials = {
   kServiceAppUrlScheme: 'naverorgseonsujoaemptyapp', // only for iOS
 };
 
-GoogleSignin.configure();
-
 export default (props)=>{
 
   const [userInfo, setUserInfo] = useState(null);
   
   const googoleSignIn = async () => {
-    
+    GoogleSignin.configure();
     try {
       await GoogleSignin.hasPlayServices();
       const result = await GoogleSignin.signIn();
@@ -44,19 +42,48 @@ export default (props)=>{
     }
   };
 
+  const facebookLogin = async () => {
+    
+    const data = await AccessToken.getCurrentAccessToken();
+    if(data) {
+      console.log('이전에 로그인한 경우 정보 가져오기', data.userID);
+    } else {
+      const result = await LoginManager.logInWithPermissions(['public_profile']);
+    
+      if (result.isCancelled) {
+        // handle this however suites the flow of your app
+        throw new Error('User cancelled request'); 
+      }
+      console.log(result);
+      console.log(`Login success with permissions: ${result.grantedPermissions.toString()}`);
+  
+      // get the access token
+      const data = await AccessToken.getCurrentAccessToken();
+      console.log('acess data', data);
+      // await AccessToken.setCurrentAccessToken(data);
+    }
+    
+  }
+  
     const authLogin = () => {
         props.navigation.navigate('AcceptTerms');
     }
     const kakaoLogin = async () => {
-        try {
-          const result = await RNKakao.login();
-          
+        const resultInfor = await getKakaoUserInfo();
+        if(resultInfor.loginError) {
+          try {
+            const result = await RNKakao.login();
+            
             console.log(result);
-        } catch (e) {
-          
-            console.log(`Error: ${e}`);
-          
+          } catch (e) {
+            
+              console.log(`Error: ${e}`);
+            
+          }
+        } else {
+          console.log(resultInfor);
         }
+
       }
     
       const kakaoLogout = async () => {
@@ -73,16 +100,16 @@ export default (props)=>{
         }
       }
     
-      const  getUserInfo = async () => {
+      const getKakaoUserInfo = async () => {
         try {
           const result = await RNKakao.userInfo();
-          
           console.log(result);
+          return result;
           
         } catch (e) {
           
-          console.log(`Error: ${e}`);
-          
+          console.log(e);
+          return {loginError:e};
         }
       }
 
@@ -92,23 +119,12 @@ export default (props)=>{
           console.log(`\n\n  Token is fetched  :: ${token} \n\n`);
           // this.setState(); 
           console.log({ theToken: token });
-          getNaverProfile(token)
+          getNaverProfile(token);
           if (err) {
             console.log(err);
             return;
           }
         });
-        // return new Promise(function (resolve, reject) {
-        //   console.log(props);
-        //   NaverLogin.login(props, (err, token) => {
-        //     console.log(`\n\n  Token is fetched  :: ${token} \n\n`);
-        //     if (err) {
-        //       reject(err);
-        //       return;
-        //     }
-        //     resolve(token);
-        //   });
-        // });
       };
       
       const getNaverProfile = async(token) => {
@@ -125,9 +141,31 @@ export default (props)=>{
       const naverLogout = () => {
         NaverLogin.logout();
       }
+      const facebookLogout = () => {
+        console.log('facebook')
+        LoginManager.logOut();
+      }
+
+      const googleLogout = async () => {
+        GoogleSignin.configure();
+        try {
+          
+          //await GoogleSignin.revokeAccess();
+          await GoogleSignin.signOut();
+          
+        } catch (error) {
+          console.error(error);
+        }
+      };
+
 
       const snsLogout = () => {
+        
         naverLogout();
+        facebookLogout();
+        kakaoLogout();
+        googleLogout();
+
       }
     return (
         <C.View cls="jc-sa ai-c flx1 bgc-color-white"> 
@@ -143,8 +181,8 @@ export default (props)=>{
                 </C.Text>
             </C.View>
             <C.View  cls="jc-sa flx0.3 w80%">
-                {/* <C.EL.Button btncls="bgc-color-facebook" title="Facebook" /> */}
-                <LoginButton
+                <C.EL.Button btncls="bgc-color-facebook" title="Facebook" onPress={facebookLogin} />
+                {/* <LoginButton
                         // style={C.n2cls("w100%") }   
                         onLoginFinished={
                             (error, result) => {
@@ -161,7 +199,7 @@ export default (props)=>{
                             }
                             }
                         }
-                        onLogoutFinished={() => console.log("logout.")}/>
+                        onLogoutFinished={() => console.log("logout.")}/> */}
 
 
 
@@ -178,7 +216,7 @@ export default (props)=>{
  
 
                 <C.EL.Button btncls="bgc-color-naver " title="Naver"  onPress={naverLogin} /> 
-                <C.EL.Button title="LOG-OUT Any"  onPress={()=> {snsLogout();}} /> 
+                <C.EL.Button title="LOG-OUT Any"  onPress={snsLogout} /> 
             </C.View>
         </C.View>
     )