_1_Login.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. import React, {useState} from 'react';
  2. import { LoginButton, AccessToken } from 'react-native-fbsdk';
  3. import RNKakao from 'react-native-kakao';
  4. import { NaverLogin, getProfile } from 'react-native-naver-login';
  5. import { GoogleSignin, GoogleSigninButton, statusCodes } from 'react-native-google-signin';
  6. import C from 'rn-class'
  7. C.addColor("#03cf5d", "color-naver");
  8. const initials = {
  9. kConsumerKey: 'VWv4bOdB5Bf07a26eJ5h',
  10. kConsumerSecret: 'pBASnpI7X5',
  11. kServiceAppName: 'emptyApp',
  12. kServiceAppUrlScheme: 'dooboolaburlscheme', // only for iOS
  13. };
  14. GoogleSignin.configure();
  15. export default (props)=>{
  16. const [userInfo, setUserInfo] = useState(null);
  17. const googoleSignIn = async () => {
  18. try {
  19. await GoogleSignin.hasPlayServices();
  20. const result = await GoogleSignin.signIn();
  21. console.log(result);
  22. } catch (error) {
  23. if (error.code === statusCodes.SIGN_IN_CANCELLED) {
  24. // user cancelled the login flow
  25. console.log('cancel',error);
  26. } else if (error.code === statusCodes.IN_PROGRESS) {
  27. // operation (f.e. sign in) is in progress already
  28. console.log('progress',error);
  29. } else if (error.code === statusCodes.PLAY_SERVICES_NOT_AVAILABLE) {
  30. // play services not available or outdated
  31. console.log('service not available',error);
  32. } else {
  33. // some other error happened
  34. console.log(error)
  35. }
  36. }
  37. };
  38. const authLogin = () => {
  39. props.navigation.navigate('AcceptTerms');
  40. }
  41. const kakaoLogin = async () => {
  42. try {
  43. const result = await RNKakao.login();
  44. console.log(result);
  45. } catch (e) {
  46. console.log(`Error: ${e}`);
  47. }
  48. }
  49. const kakaoLogout = async () => {
  50. try {
  51. const result = await RNKakao.logout();
  52. console.log(result);
  53. } catch (e) {
  54. console.log(`Error: ${e}`);
  55. }
  56. }
  57. const getUserInfo = async () => {
  58. try {
  59. const result = await RNKakao.userInfo();
  60. console.log(result);
  61. } catch (e) {
  62. console.log(`Error: ${e}`);
  63. }
  64. }
  65. const naverLogin = async (props) => {
  66. NaverLogin.login(initials, (err, token) => {
  67. console.log(`\n\n Token is fetched :: ${token} \n\n`);
  68. // this.setState();
  69. console.log({ theToken: token });
  70. if (err) {
  71. console.log(err);
  72. return;
  73. }
  74. });
  75. // return new Promise(function (resolve, reject) {
  76. // console.log(props);
  77. // NaverLogin.login(props, (err, token) => {
  78. // console.log(`\n\n Token is fetched :: ${token} \n\n`);
  79. // if (err) {
  80. // reject(err);
  81. // return;
  82. // }
  83. // resolve(token);
  84. // });
  85. // });
  86. };
  87. return (
  88. <C.View cls="jc-sa ai-c flx1 bgc-color-white">
  89. <C.ImageBackground source={require("../res/speech_bubble.png")}
  90. cls="ai-c jc-c flx0.5 w70"
  91. resizeMode="contain"
  92. >
  93. <C.Text cls="f5"> empty </C.Text>
  94. </C.ImageBackground>
  95. <C.View>
  96. <C.Text cls="f2.5 ta-c" >
  97. {"Breathe in slowly \nAre you ready?"}
  98. </C.Text>
  99. </C.View>
  100. <C.View cls="jc-sa flx0.3 w80%">
  101. {/* <C.EL.Button btncls="bgc-color-facebook" title="Facebook" /> */}
  102. <LoginButton
  103. // style={C.n2cls("w100%") }
  104. onLoginFinished={
  105. (error, result) => {
  106. if (error) {
  107. console.log("login has error: " + result.error);
  108. } else if (result.isCancelled) {
  109. console.log("login is cancelled.");
  110. } else {
  111. AccessToken.getCurrentAccessToken().then(
  112. (data) => {
  113. console.log(data.accessToken.toString())
  114. }
  115. )
  116. }
  117. }
  118. }
  119. onLogoutFinished={() => console.log("logout.")}/>
  120. <C.EL.Button btncls="bgc-color-google-plus " title="Google" onPress={googoleSignIn} />
  121. {/* <GoogleSigninButton
  122. style={{ width: 192, height: 48 }}
  123. size={GoogleSigninButton.Size.Wide}
  124. color={GoogleSigninButton.Color.Dark}
  125. onPress={googoleSignIn}
  126. disabled={false} /> */}
  127. <C.EL.Button btncls="bgc-color-kakao " tcls="color-kakaotext" title="Kakao" onPress={kakaoLogin}/>
  128. <C.EL.Button btncls="bgc-color-naver " title="Naver" onPress={naverLogin}/>
  129. </C.View>
  130. </C.View>
  131. )
  132. }