我正在使用来自 https://github.com/Azure-Samples/active-directory-android的 ADAL
我的代码非常接近地模仿了示例
mAuthContext.acquireToken(ToDoActivity.this, Constants.RESOURCE_ID,
Constants.CLIENT_ID, Constants.REDIRECT_URL, Constants.USER_HINT,
new AuthenticationCallback<AuthenticationResult>() {
@Override
public void onError(Exception exc) {
if (mLoginProgressDialog.isShowing()) {
mLoginProgressDialog.dismiss();
}
Toast.makeText(getApplicationContext(),
TAG + "getToken Error:" + exc.getMessage(), Toast.LENGTH_SHORT)
.show();
navigateToLogOut();
}
@Override
public void onSuccess(AuthenticationResult result) {
if (mLoginProgressDialog.isShowing()) {
mLoginProgressDialog.dismiss();
}
if (result != null && !result.getAccessToken().isEmpty()) {
setLocalToken(result);
sendRequest();
} else {
navigateToLogOut();
}
}
});
我传入了用户的电子邮件地址,但如果用户更改它并使用不同的电子邮件地址,onSuccess 上的 ADAL 库永远不会告诉我用户更改了它。AuthenticationResult 有一个名为 mUserInfo 的字段,该字段应包含用户的名字/姓氏电子邮件等。
但对我来说,每次成功登录 mUserInfo=null。
任何人都知道如何让 ADAL 返回一个完全填充的 mUserInfo 对象?
谢谢汤姆