簡體   English   中英

在 ASP.NET Core MVC 中從 Cognito 注銷時出錯

[英]Error logging out from Cognito in ASP.NET Core MVC

我正在為 ASP.NET Core MVC 應用程序和與 Cognito 的集成而苦苦掙扎。

我已經設法使登錄功能正常工作,但現在正在為退出功能而苦苦掙扎。

我基於 AWS 代碼https://catalog.us-east-1.prod.workshops.aws/workshops/02696107-09ac-4313-a6cb-3798048b07d7/en-US/9-how-to-authenticate -users-in-my-application及其提供的示例代碼。

這具有如下注銷代碼:

    public IActionResult SignOut()
    {
        var callbackUrl = Url.Page("/", pageHandler: null, values: null, protocol: Request.Scheme);
        return SignOut(
            new AuthenticationProperties { RedirectUri = callbackUrl },
            CookieAuthenticationDefaults.AuthenticationScheme, OpenIdConnectDefaults.AuthenticationScheme
        );
    }

調整我的應用程序后,結果如下:

    public IActionResult SignOut()
    {
        var baseUri = $"{Request.Scheme}://{Request.Host}";
 
        //var callbackUrl = Url.Page("/", pageHandler: null, values: null, protocol: Request.Scheme);

        return SignOut(
            new AuthenticationProperties { RedirectUri = baseUri },
            CookieAuthenticationDefaults.AuthenticationScheme, OpenIdConnectDefaults.AuthenticationScheme
        );
    }

當我運行該應用程序並嘗試注銷時,注銷似乎正確為 function(因為 cookies 已被刪除)。 但是,Cognito 重定向失敗並顯示以下內容:

在此處輸入圖像描述

調試代碼時可以看到重定向 URI 設置為“https://localhost:7085”

在 AWS 中,App Client 定義如下(即相同的注銷 URL)——因此兩個值相同。

在此處輸入圖像描述

關於我在這里做錯了什么的任何想法?

在我們調用注銷端點后,它將導航用戶,要么導航到logout_uri參數中指定的位置,要么導航到redirect_uri參數。 (請參考文檔

根據錯誤消息(“redirect_mismatch”),這看起來像是在嘗試使用redirect_uri 這意味着它試圖在成功注銷后將用戶發送回登錄頁面。

請檢查網絡請求。 而且我相信這個錯誤一定是在登錄重定向期間發生的。 在這種情況下,需要在應用程序客戶端的Allowed callback URLs中指定redirect_uri

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM