允許重定向站點根以外的 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);
}