nayanAubie / msal_auth

A new Flutter plugin for Azure AD authentication.
MIT License
5 stars 9 forks source link

unable to run on android #19

Closed nelzaatari closed 2 months ago

nelzaatari commented 2 months ago

hi,

im getting this error on android, not able to understans why

Error registering plugin msal_auth, com.example.msal_auth.MsalAuthPlugin java.lang.ClassCastException: com.kockw.ws.MainActivity cannot be cast to io.flutter.embedding.android.FlutterActivity at com.example.msal_auth.MsalAuthPlugin.onAttachedToActivity(MsalAuthPlugin.kt:43) at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.add(FlutterEngineConnectionRegistry.java:157) at io.flutter.plugins.GeneratedPluginRegistrant.registerWith(GeneratedPluginRegistrant.java:69) at java.lang.reflect.Method.invoke(Native Method) at io.flutter.embedding.engine.plugins.util.GeneratedPluginRegister.registerGeneratedPlugins(GeneratedPluginRegister.java:80) at io.flutter.embedding.android.FlutterFragmentActivity.configureFlutterEngine(FlutterFragmentActivity.java:737) at com.kockw.ws.MainActivity.configureFlutterEngine(MainActivity.kt:61) at io.flutter.embedding.android.FlutterFragment.configureFlutterEngine(FlutterFragment.java:1520) at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onAttach(FlutterActivityAndFragmentDelegate.java:219) at io.flutter.embedding.android.FlutterFragment.onAttach(FlutterFragment.java:1056) at androidx.fragment.app.Fragment.performAttach(Fragment.java:3068) at androidx.fragment.app.FragmentStateManager.attach(FragmentStateManager.java:490) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:265) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1943) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1839) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1782) at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3042) at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2952) at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:263) at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:350) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1582) at android.app.Activity.performStart(Activity.java:9008) at android.app.ActivityThread.handleStartActivity(ActivityThread.java:4198) at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:225) at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:205) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:177) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:98) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2685) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:230) at android.os.Looper.loop(Looper.java:319) at android.app.ActivityThread.main(ActivityThread.java:8919) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

and then i get this when execution completes

Msal exception with error: The redirect URI in the configuration file doesn't match with the one generated with package name and signature hash. Please verify the uri in the config file and your app registration in Azure portal.We expected 'msauth://com.example.ws/<my hash>' and we received 'msauth://com.example.ws/<my hash>.

nayanAubie commented 2 months ago

Your hash value does not match what you have defined on the Azure portal and you are using in AndroidManifest Ensures that you have the proper redirect_uri in the msal_config.json for Android.

nelzaatari commented 2 months ago

i was able to generate the the proper hash using the following command

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

i want to understand how is it different from account mentioned in your documentation

nayanAubie commented 2 months ago

Debug and release mode contains different hashes. you need to register both on the portal I guess.

nelzaatari commented 2 months ago

thanks and many thanks for the great plugin, it is very professionally done.

nayanAubie commented 2 months ago

@nelzaatari Please give a like on pub.dev if you find it useful

nelzaatari commented 2 months ago

sure