CodetrixStudio / CapacitorGoogleAuth

Capacitor plugin for Google Auth. Lightweight & no dependencies.
MIT License
284 stars 158 forks source link

Something went wrong, error code 10 on Android #371

Open lsantaniello opened 5 months ago

lsantaniello commented 5 months ago

I integrated plugin on my ionic capacitor app. On iOS, it works. On Android Device I always receve this error:

{"save":false,"callbackId":"29072639","pluginId":"GoogleAuth","methodName":"signIn","success":false,"error":{"message":"Something went wrong","code":"10"}}

I configured all as wiki but I can't solve.

I have some doubts: 1) Downloaded from firebase console my google-services.json. Is it required? Where I need to save it?

2) I can't have "capacitor.config.json" file. I have only capacitor.config.ts

3) In google-service.json file there are several codes:

4) What is "serverClientId"?

5) What is the crrect SHA-1 to register at Android Console? a) That present in Google Play Console? b) Thant generate from command line (keytool -keystore MYKEYSTORE -list -v)?

My google-services.json file is:

{
  "project_info": {
    "project_number": "*******",
    "project_id": "myapp-c7381",
    "storage_bucket": "*******-c7381.appspot.com"
  },
  "client": [
    {
      "client_info": {
        "mobilesdk_app_id": "1:359711685148:android:5db8f05cc8c23360433dd9",
        "android_client_info": {
          "package_name": "it.********"
        }
      },
      "oauth_client": [
        {
          "client_id": "359711685148-aaaaaaaaaaaaaaaaaa.apps.googleusercontent.com",
          "client_type": 1,
          "android_info": {
            "package_name": "it.gemarexpress",
            "certificate_hash": "dsadasdasdsadada"
          }
        },
        {
          "client_id": "359711685148-kkkk.apps.googleusercontent.com",
          "client_type": 3
        }
      ],
      "api_key": [
        {
          "current_key": "***********"
        }
      ],
      "services": {
        "appinvite_service": {
          "other_platform_oauth_client": [
            {
              "client_id": "359711685148-xxxx.apps.googleusercontent.com",
              "client_type": 3
            },
            {
              "client_id": "359711685148-yyyy.apps.googleusercontent.com",
              "client_type": 2,
              "ios_info": {
                "bundle_id": "**********"
              }
            }
          ]
        }
      }
    }
  ],
  "configuration_version": "1"
}

My capacitor.config.ts

As "androidClientId" I used "client.oauth_client.client_id". The same of there is on Google Cloud Console, OAuth 2.0 Client IDs as "[Android client for it.gemarexpress (auto created by Google Service)]"

image

  plugins: {
    GoogleAuth: {
      scopes: ['profile', 'email'],
      iosClientId: "359711685148-xxx.apps.googleusercontent.com",
      androidClientId: "359711685148-yyy.apps.googleusercontent.com",
      serverClientId: 'xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com',
      forceCodeForRefreshToken: true,
    },
  }
arielhasidim commented 5 months ago

Maybe this will help: https://github.com/CodetrixStudio/CapacitorGoogleAuth/issues/332#issuecomment-2145794691

lsantaniello commented 4 months ago

I tried but It doesn't work for me.

I integrated Google Oauth Sign In in my Ionic Capacitor App but I have an issue for Android Device only:

When the user clicks on the Google login button from the app, a popup appears to select the gmail account. Immediately afterwards the system goes into error and in the log I find this error:

{ "save": false, "callbackId": "21517523", "pluginId": "GoogleAuth", "methodName": "signIn", "success": false, "error": { "message": "Something went wrong", "code": "10" } }

I've read several posts and tried different solutions but I can't resolve the problem. I followed the following steps

1) I deleted all fingerprints from Firebase Console for Android application

2) I have deleted all references from Google Cloud Console Oauth 2.0 Client IDs for the Android application

3) Generated SHA using windows shell command keytool -keystore my-jks-file-path -list -v

Certificate fingerprints: SHA1: 56:5D:38:F2:D0:XX:XX:XX:XX:XX:D7:FB:56:7A:A2:D4:B5:1B:D0:C5

4) Add SHA certificate fingerprint from Firebase Console (Android Apps)

5) Google creae automatically reference into Google Cloud Console Oauth 2.0 Client IDs (Android client for (auto created by Google Service))

6) Downloaded google-services.json file-path

7) Copied google-services.json file into my ionic app into .\android\app\google-services.json

8) Rebuild App using keystore (the same used for generate SHA certificate fingerprints )

9) Installed on my android device

lsantaniello commented 4 months ago

I'll pay for support

jaderinoo commented 4 months ago

Any update on this? I'm implementing this and just ran into this issue :(

srinivaspillalamarri commented 4 months ago

I added my app SHA-256 in Firebase and it is started working for web application

image

image

in android folder I executed following command in command prompt gradlew signInReport

and copy SHA1 to Firebase SHA certificate fingerprints and same I did for SHA-256. While debugging it is not working but after deployment it is working fine without any issue

jaderinoo commented 4 months ago

Just an update from me:

As mentioned in other threads, we should be using the web app key for Android. Additionally, the SHA-1 for each keystore and the Google Play Console all need to be included on the certs page in the Google Console.

Each type of build has a SHA-1 that needs to be available on the Google Console for sso to work on android. I recommend fetching the SHA-1 for the debug keystore, the generated keystore you use to sign your app, and the SHA-1 available on the Play Console. If set up correctly, the SSO should go through. If not, then the SHA-1 for the version you're running isn't available on the Google Console.

Karthika-PJ commented 3 months ago

Hi Have you got any solution for this issue?

srinivaspillalamarri commented 3 months ago

Yes! complete solution is around SHA-1 and SHA-256 But I guess this repository need more documentation. Version should be updated to redirection and callback function. Refer to my previous post https://github.com/CodetrixStudio/CapacitorGoogleAuth/issues/371#issuecomment-2225292476

acosme commented 2 months ago

same issue here after update to capacitor 6 detail is that firebase is not mirroring the sha1 to console.cloud when add the key