在 ABP vNext 框架下,可以通过继承 TokenController 并重写 HandleAsync 方法来自定义 OpenIddict 的登录验证逻辑。以下是具体实现步骤:
1. 创建自定义 CustomTokenController
在主机Host项目的Controller文件夹下新建一个类继承自 TokenController,并重写 HandleAsync 方法。例如,实现一个基于手机号和验证码的登录验证:
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Mvc;
using OpenIddict.Server.AspNetCore;
using System.Security.Claims;
using System.Threading.Tasks;
using Volo.Abp.OpenIddict.Controllers;
[Route("/connect/token")]
public class CustomTokenController : TokenController
{
public override async Task<IActionResult> HandleAsync()
{
var request = await GetOpenIddictServerRequestAsync(HttpContext);
// 自定义手机号和验证码登录逻辑
if (request.GrantType == "phone_verify")
{
var phoneNumber = request.GetParameter("phone_number");
var verificationCode = request.GetParameter("verification_code");

最低0.47元/天 解锁文章
871

被折叠的 条评论
为什么被折叠?



