如何解决添加自定义令牌提供者
我定义了一个类GoogleTokenProvider
,该类实现了IUserTwoFactorTokenProvider
接口,如下所示:
public class GoogleTokenProvider : IUserTwoFactorTokenProvider<IdentityUser>
{
public static readonly string ProviderName = "Google";
private readonly GoogleTfaSettings _googleTfaSettings;
public GoogleTokenProvider(GoogleTfaSettings googleTfaSettings)
{
_googleTfaSettings = googleTfaSettings;
}
public async Task<bool> CanGenerateTwoFactorTokenAsync(UserManager<IdentityUser> manager,IdentityUser user)
{
return _googleTfaSettings.Enabled;
}
public async Task<string> GenerateAsync(string purpose,UserManager<IdentityUser> manager,IdentityUser user)
{
var authenticator = new TwoFactorAuthenticator();
Guid guid = Guid.NewGuid();
string uniqueUserKey = Convert.ToString(guid).Replace("-","").Substring(0,10);
var setup = authenticator.GenerateSetupCode("Sneakers",user.UserName,uniqueUserKey,false,300);
return setup.QrCodeSetupImageUrl;
}
public async Task<bool> ValidateAsync(string purpose,string token,IdentityUser user)
{
var authenticator = new TwoFactorAuthenticator();
return authenticator.ValidateTwoFactorPIN("",token);
}
}
我的目标是从GenerateAsync
方法返回多个值,因为我需要QrCodeSetupImageUrl
和uniqueUserKey
。但是,方法签名仅返回Task<string>
,因此我无法发送回自定义模型。
我需要使用IUserTwoFactorTokenProvider
,因为我希望Identity能够为给定的提供程序生成正确的令牌。有什么办法可以解决这个问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。