react-native-google-appauth
This is a react native library for Android
to integrate google sign in with youtube brand account using AppAuth
Getting started
$ npm install react-native-google-appauth --save
Mostly automatic installation
$ react-native link react-native-google-appauth
Add this in your android/app/src/main/AndroidManifest.xml
<activity android:name="com.bidchat.reactnative.appauth.NewMainActivity"
android:theme = "@android:style/Theme.Translucent.NoTitleBar"
android:launchMode="singleTask">
<intent-filter>
<action android:name="com.google.codelabs.appauth.HANDLE_AUTHORIZATION_RESPONSE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity android:name="net.openid.appauth.RedirectUriReceiverActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="com.bidchat.reactnative.appauth"/>
</intent-filter>
</activity>
Manual installation
Android
- Open up
android/app/src/main/java/[...]/MainActivity.java
- Add
import com.bidchat.reactnative.appauth.RNGoogleAppauthPackage;
to the imports at the top of the file - Add
new RNGoogleAppauthPackage()
to the list returned by thegetPackages()
method
- Append the following lines to
android/settings.gradle
:include ':react-native-google-appauth' project(':react-native-google-appauth').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-google-appauth/android')
- Insert the following lines inside the dependencies block in
android/app/build.gradle
:compile project(':react-native-google-appauth')
- Add this in your
android/app/src/main/AndroidManifest.xml
<activity android:name="com.bidchat.reactnative.appauth.NewMainActivity"
android:theme = "@android:style/Theme.Translucent.NoTitleBar"
android:launchMode="singleTask">
<intent-filter>
<action android:name="com.google.codelabs.appauth.HANDLE_AUTHORIZATION_RESPONSE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity android:name="net.openid.appauth.RedirectUriReceiverActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="com.bidchat.reactnative.appauth"/>
</intent-filter>
</activity>
Usage
; { const authInstance = ; authInstance ;} handleLogin = async { try const data = await ; console; // if (data && (typeof data === "object") && data.id_token) { // this.setState({ signedIn: true, user: data }); // } // DO SOMETHING WITH USER INFO catch err console; } handleLogOut = async { const logout = await ; if logout && typeof logout === "object" && logoutstatus // this.setState({ signedIn: false, user: {} }); // USER SUCCESSFULLY LOGGEDOUT } ... { return ... <Button onPress=thishandleLogin title="Sign in by Google" color="#841584" accessibilityLabel="Click Me to login" /> }