允许重定向站点根以外的 URL

转到 Providers> ApplicationOAuthProvider.cs 并编辑 ValidateClientRedirectUri 函数。这对我来说是一个很大的问题,好像你不这样做会有一个非常无益的错误信息。默认情况下,此代码会使你网站的任何回调无效,除非它们是网站的根目录。你可能希望能够在控制器中处理回调,因此你需要将其更改为以下内容:

public override Task ValidateClientRedirectUri(OAuthValidateClientRedirectUriContext context)
{
      if (context.ClientId == _publicClientId)
      {
            Uri expectedRootUri = new Uri(context.Request.Uri, "/");
            Uri expectedCallbackUri = new Uri(context.Request.Uri, "/callback");

            if (expectedRootUri.AbsoluteUri == context.RedirectUri ||
                  expectedCallbackUri.AbsoluteUri == context.RedirectUri)
            {
                  context.Validated();
            }
      }
      return Task.FromResult<object>(null);
}