OpenIdConnect:手动处理回调

Nul*_*nce 3 c# openid-connect asp.net-core

在asp.core中配置时OpenIdConnectOptions.CallbackPath,我们可以提供自己的控制器/操作方法来拦截从OIDC服务器返回的代码吗?

我已经设置了一个控制器/操作方法来处理返回的代码,并在 Startup.cs 类中添加了此选项:

.AddOpenIdConnect("oidc", options =>
{
  //other options
  options.CallbackPath = new PathString("/oidc/codehandler");
}
Run Code Online (Sandbox Code Playgroud)

但即使我看到用户登录后发生重定向,操作方法也永远不会被调用:

http://myserver.com/oidc/codehandler?scope=openid&state=abc123&code=xyz456
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?

Nan*_* Yu 7

CallbackPath是服务器在身份验证后重定向的路径。它由 OIDC 中间件本身自动处理,我们不需要在应用程序中创建它,中间件将处理它。

\n\n

您可以在 OIDC OWIN Middlerware 中使用通知事件,该通知事件会调用以使开发人员能够控制身份验证过程。例如,AuthorizationCodeReceived事件可用于使用授权代码获取访问令牌。

\n