MaikuB / flutter_appauth

A Flutter wrapper for AppAuth iOS and Android SDKs
274 stars 246 forks source link

PlatformException(authorize_and_exchange_code_failed, Failed to authorize: [error: null, description: Invalid ID Token], ID Token expired, null) on authorize_and_exchange #510

Closed Wwwolfgang closed 3 months ago

Wwwolfgang commented 3 months ago
          I'm facing a similar problem. This is my code for the login flow:

await _appAuth.authorizeAndExchangeCode(AuthorizationTokenRequest( const String.fromEnvironment("CLIENT_ID"), const String.fromEnvironment("CALLBACK_URL_SCHEME"), serviceConfiguration: AuthorizationServiceConfiguration( authorizationEndpoint: Uri.https( const String.fromEnvironment("ISSUER"), '/api/oidc/authorize') .toString(), tokenEndpoint: Uri.https(const String.fromEnvironment("ISSUER"), '/api/oidc/token') .toString(), endSessionEndpoint: Uri.https( const String.fromEnvironment("ISSUER"), '/api/oidc/endsession') .toString(), ), scopes: ['openid', 'all_scopes', 'offline_access', 'profile'], preferEphemeralSession: true, loginHint: userId, promptValues: ['login'], allowInsecureConnections: true, discoveryUrl: const String.fromEnvironment("DISCOVERY_URL"), ))

It works on almost any phone(Android), but when I tried it on an old Huawei phone with Android 9 I get this error:

PlatformException(authorize_and_exchange_code_failed, Failed to authorize: [error: null, description: Invalid ID Token], ID Token expired, null)

If anyone knows what I could do, please tell me. I don't want to write all the logic myself but apparently I have to.

_Originally posted by @Wwwolfgang in https://github.com/MaikuB/flutter_appauth/issues/486#issuecomment-2252773802_

Wwwolfgang commented 3 months ago

I made this issue so that other people can find it. The problem in my case was, that on the phone the Time was not set to automatic and was set manually. For that reason the Id Token seemed to be expired. So if you experience this problem, check your time settings.