Android接入Azure B2C登录遇MsalClientException缺令牌问题排查
Android端Azure B2C MSAL登录异常排查
开发背景
- 已完成Android端Azure B2C登录功能开发,参考官方MSAL Android开源示例实现核心业务逻辑
- 应用运行阶段突发认证失败报错:
Authentication failed: com.microsoft.identity.client.exception.MsalClientException: Missing required tokens of type: {0} - 初期无明确排查方向,排查阶段同步核对应用运行截图、控制台配置截图,未发现显性参数错配
前置校验动作
- 完成控制台权限核对:所有已申请的Scope均处于已授权状态,Android代码中配置的Scope地址与控制台配置完全一致
- 本地KeyHash生成逻辑代码如下:
public static void getKeyHash(Context mAppContext){ final String packageName = mAppContext.getPackageName(); try { final PackageInfo info = mAppContext.getPackageManager().getPackageInfo(packageName, PackageManager.GET_SIGNATURES); for (final Signature signature : info.signatures) { final MessageDigest messageDigest = MessageDigest.getInstance("SHA"); messageDigest.update(signature.toByteArray()); final String signatureHash = Base64.encodeToString(messageDigest.digest(), Base64.NO_WRAP); Log.i("Utils", "signatureHash-->" + signatureHash); } } catch (PackageManager.NameNotFoundException | NoSuchAlgorithmException e) { e.printStackTrace(); Log.e("Utils", "Unexpected error in verifyRedirectUriWithAppSignature()", e); } }
根因定位与解决
- 逐维度排查后确认问题根因:权限申请清单遗漏
offline_access权限 - 补充该权限配置后,应用登录流程恢复正常
内容的提问来源于stack exchange,提问作者NareshRavva
相关产品推荐
相关产品推荐

