You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I want to pass prompt=select_account to the Microsoft oauth flow to display the account picker. I'm using this code in the provider setup:
AuthUI.IdpConfig.MicrosoftBuilder().setCustomParameters(hashMapOf("prompt" to "select_account")).build()
The parameters are not passed to the flow and authentication continues without offering a choice of accounts.
Steps to reproduce:
Set up a Microsoft auth provider passing the prompt=account custom parameter:
AuthUI.IdpConfig.MicrosoftBuilder().setCustomParameters(hashMapOf("prompt" to "select_account")).build()
Press "Sign in with Microsoft" provider button to start the sign in activity
Observed Results:
The following error shows in the log, and the prompt parameter is not passed to the flow:
2020-07-08 10:18:01.200 19752-19752/com.---.--- W/Bundle: Key generic_oauth_custom_parameters expected Parcelable but value was a java.util.HashMap. The default value <null> was returned.
2020-07-08 10:18:01.204 19752-19752/com.---.--- W/Bundle: Attempt to cast generated internal exception:
java.lang.ClassCastException: java.util.HashMap cannot be cast to android.os.Parcelable
at android.os.Bundle.getParcelable(Bundle.java:957)
at com.firebase.ui.auth.data.remote.GenericIdpSignInHandler.buildOAuthProvider(GenericIdpSignInHandler.java:205)
at com.firebase.ui.auth.data.remote.GenericIdpSignInHandler.startSignIn(GenericIdpSignInHandler.java:69)
at com.firebase.ui.auth.ui.idp.AuthMethodPickerActivity$3.onClick(AuthMethodPickerActivity.java:350)
at android.view.View.performClick(View.java:7259)
at android.view.View.performClickInternal(View.java:7236)
at android.view.View.access$3600(View.java:801)
at android.view.View$PerformClick.run(View.java:27892)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Expected Results:
The custom parameter "prompt" should be passed to the flow causing the account picker to display
Relevant Code:
AuthUI.IdpConfig.MicrosoftBuilder().setCustomParameters(hashMapOf("prompt" to "select_account")).build()
Step 3: Describe the problem:
I want to pass prompt=select_account to the Microsoft oauth flow to display the account picker. I'm using this code in the provider setup:
AuthUI.IdpConfig.MicrosoftBuilder().setCustomParameters(hashMapOf("prompt" to "select_account")).build()
The parameters are not passed to the flow and authentication continues without offering a choice of accounts.
Steps to reproduce:
AuthUI.IdpConfig.MicrosoftBuilder().setCustomParameters(hashMapOf("prompt" to "select_account")).build()
Observed Results:
The following error shows in the log, and the prompt parameter is not passed to the flow:
Expected Results:
The custom parameter "prompt" should be passed to the flow causing the account picker to display
Relevant Code:
AuthUI.IdpConfig.MicrosoftBuilder().setCustomParameters(hashMapOf("prompt" to "select_account")).build()
setCustomParameters appears to call putSerializable() with the given HashMap: https://github.com/firebase/FirebaseUI-Android/blob/version-6.2.1/auth/src/main/java/com/firebase/ui/auth/AuthUI.java#L1191
but the flow uses getParcelable() to retrieve the parameters: https://github.com/firebase/FirebaseUI-Android/blob/version-6.2.1/auth/src/main/java/com/firebase/ui/auth/data/remote/GenericIdpSignInHandler.java#L205
The text was updated successfully, but these errors were encountered: