作为客户端应用,用户从身份服务器登录,并被重定向至 /signin-oidc
客户端应用的端点。/signin-oidc
OpenId中间件已经自动处理了,所以我不能把我的注册用户流程放在第一次登录的时候。
在谷歌、Facebook或微软的外部登录过程中,有一个非常重要的问题。returnUrl
在成功登录后的重定向,我能够注入我的注册(保存用户信息)代码逻辑。
看来OpenId在这方面是不同的。那么正确的注册流程是什么?
你可以在OIDC OWIN中间件中使用通知事件,它的调用可以让开发者添加自定义逻辑。例如,你可以查询数据库,并在数据库中创建一个用户。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;
},
};