我有一个场景,当我想在GetProfileDataAsync(ProfileDataRequestContext context)
中的ProfileService
中添加声明时。仅特定客户需要这些声明,而不是所有声明。然而,用户事先没有填写所需信息,比如说是电话号码。
此刻我该怎么办?什么是最佳实践?我是否应该以某种方式在GetProfileDataAsync
中发布令牌失败,并将用户重定向到要求用户提供丢失电话号码的页面?但为了首先将新电话号码与他的帐户关联,我需要对用户进行身份验证,所以我无论如何都需要发布令牌,然后在填写缺失信息后以某种方式重新发布。
最佳实践是什么?
我会在IdentityServer/Account页面逻辑中检查这一点,因此当用户经过身份验证时,在调用PasswordSignInAsync登录用户IdentityServer之前,您也会检查丢失的声明。
即在此之前:
var result = await _signInManager.PasswordSignInAsync(model.Username, model.Password, model.RememberLogin, lockoutOnFailure: true);