处理来自 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;
},
};
作为客户端应用程序,用户从身份服务器登录并重定向到客户端应用程序的 /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;
},
};