问题描述
我已经在我的Android应用上使用MSAl库实现了Azure AD B2C,SignIn and SignUp
的用户流按预期工作。但是当我尝试在我的应用上单击ForgotPassword
时,出现以下错误:
错误:
身份验证失败:com.microsoft.identity.client.exception.MsalServiceException:AADB2C90118:用户忘记了密码。 相关ID:
我在我的应用程序中启用了B2C createSingleAccountPublicClientApplication
。
解决方法
是的,所以在B2C中忘记密码的工作方式是,如果用户单击“我忘记了密码”链接, 它们会被错误发送回您的应用。
您的应用需要处理此错误并再次触发身份验证,但这一次使用的是忘记密码流而不是登录/注册流。
,您有两个选择:
(1)如this示例中所述,在当前策略(登录/注册)中实现忘记密码。由于忘记密码已嵌入在策略中,因此不会触发任何错误。
(2)您处理应用程序中的Authentication failed: com.microsoft.identity.client.exception.MsalServiceException: AADB2C90118
错误。然后,您的应用程序应针对处理忘记密码的b2c策略发起新的OIDC请求。从技术上讲,您现在拥有两个权限-请参阅下面的示例配置,并注意b2c_1_susi
和b2c_1_forgot_password
的不同权限,分别代表符号/签名和忘记密码策略。在这种情况下,请尝试使用sample
createMultipleAccountPublicClientApplication
{
* "client_id" : "90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6",* "redirect_uri" : "msauth://com.azuresamples.msalandroidapp/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D",* "account_mode" : "MULTIPLE",* "broker_redirect_uri_registered": false,* "authorities": [
* {
* "type": "B2C",* "authority_url": "https://fabrikamb2c.b2clogin.com/tfp/fabrikamb2c.onmicrosoft.com/b2c_1_susi/",* "default": true
* },* {
* "type": "B2C",* "authority_url": "https://fabrikamb2c.b2clogin.com/tfp/fabrikamb2c.onmicrosoft.com/b2c_1_edit_profile/"
* },* "authority_url": "https://fabrikamb2c.b2clogin.com/tfp/fabrikamb2c.onmicrosoft.com/b2c_1_forgot_password/"
* }
* ]
* }