处理来自 Identity Server 的回调

Handling callback from Identity Server

作为客户端应用程序,用户从身份服务器登录并重定向到客户端应用程序的 /signin-oidc 端点。 /signin-oidc 已经由 OpenId 中间件自动处理,因此我无法在首次登录时放置我的注册用户进程。

在 Google、Facebook 或 Microsoft 的外部登录过程中,在成功登录结束时有一个 returnUrl 重定向,我能够注入我的注册(保存用户详细信息) ) 代码逻辑。

看来OpenId在这方面有所不同。那么注册过程的正确方法是什么?

您可以在 OIDC OWIN Middlerware 中使用通知事件,它会调用以使开发人员能够添加自定义逻辑。例如,您可以查询数据库并在 OnTokenValidated 事件中创建用户:

options.Events = new OpenIdConnectEvents
{
    OnTokenValidated = ctx =>
    {
        //query the database 

        var db = ctx.HttpContext.RequestServices.GetRequiredService<YourDbContext>();

        //perform custom logic for user management in local database


        return Task.CompletedTask;
    },
};