Open Closed

OpenIdDict login issue on Android MAUI app #7176


User avatar
0
darutter created
  • ABP Framework version: v8.0.5
  • UI Type: MVC
  • Database System: EF Core (SQL Server)
  • Tiered (for MVC) or Auth Server Separated (for Angular): no
  • Exception message and full stack trace:
    • Login process does not complete for Android app. The username and password are correct and the API indicates the authorization was successful, but the process never returns to the MAUI mobile app. The login process does work for the iOS version. Here is a copy of the logs of both the Android attempt and the iOS attempt. The steps vary significantly and I can't determine why.
    • ANDROID REQUEST/RESPONSE 2024-05-10 14:54:02.707 +00:00 [INF] Request starting HTTP/1.1 GET https://myproject.azurewebsites.net/connect/authorize?response_type=code&state=ToWr4OLrqlu_O3T3twjyow&code_challenge=3DS_PFBQAxVIOcgHeBfIgxNHuLnLGVVhtrO643OQdSk&code_challenge_method=S256&client_id=MyProject_Maui&scope=offline_access%20MyProject&redirect_uri=myproject%3A%2F%2F - null null 2024-05-10 14:54:02.708 +00:00 [INF] The request URI matched a server endpoint: "Authorization". 2024-05-10 14:54:02.708 +00:00 [INF] The authorization request was successfully extracted: { "response_type": "code", "state": "ToWr4OLrqlu_O3T3twjyow", "code_challenge": "3DS_PFBQAxVIOcgHeBfIgxNHuLnLGVVhtrO643OQdSk", "code_challenge_method": "S256", "client_id": "MyProject_Maui", "scope": "offline_access MyProject", "redirect_uri": "myproject://" }. 2024-05-10 14:54:02.755 +00:00 [INF] The authorization request was successfully validated. 2024-05-10 14:54:03.249 +00:00 [INF] Executing endpoint 'Volo.Abp.OpenIddict.Controllers.AuthorizeController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' 2024-05-10 14:54:03.249 +00:00 [INF] Route matched with {action = "Handle", controller = "Authorize", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] HandleAsync() on controller Volo.Abp.OpenIddict.Controllers.AuthorizeController (Volo.Abp.OpenIddict.AspNetCore). 2024-05-10 14:54:03.249 +00:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy 2024-05-10 14:54:03.258 +00:00 [INF] Executing action method Volo.Abp.OpenIddict.Controllers.AuthorizeController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore) - Validation state: "Valid" 2024-05-10 14:54:03.787 +00:00 [INF] Executed action method Volo.Abp.OpenIddict.Controllers.AuthorizeController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore), returned result Microsoft.AspNetCore.Mvc.SignInResult in 529.3316ms. 2024-05-10 14:54:03.788 +00:00 [INF] Executing SignInResult with authentication scheme (OpenIddict.Server.AspNetCore) and the following principal: System.Security.Claims.ClaimsPrincipal. 2024-05-10 14:54:04.269 +00:00 [INF] The authorization response was successfully returned to 'myproject://' using the query response mode: { "code": "[redacted]", "state": "ToWr4OLrqlu_O3T3twjyow", "iss": "https://myproject.azurewebsites.net/" }. 2024-05-10 14:54:04.272 +00:00 [INF] Executed action Volo.Abp.OpenIddict.Controllers.AuthorizeController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore) in 1022.2885ms 2024-05-10 14:54:04.272 +00:00 [INF] Executed endpoint 'Volo.Abp.OpenIddict.Controllers.AuthorizeController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' 2024-05-10 14:54:04.278 +00:00 [INF] Request finished HTTP/1.1 GET https://myproject.azurewebsites.net/connect/authorize?response_type=code&state=ToWr4OLrqlu_O3T3twjyow&code_challenge=3DS_PFBQAxVIOcgHeBfIgxNHuLnLGVVhtrO643OQdSk&code_challenge_method=S256&client_id=MyProject_Maui&scope=offline_access%20MyProject&redirect_uri=myproject%3A%2F%2F - 302 null null 1571.1336ms ***Health Status requests begin immediately after this last statement. ***

iOS REQUEST/RESPONSE 2024-05-10 15:02:13.092 +00:00 [INF] Request starting HTTP/1.1 GET https://myproject.azurewebsites.net/connect/authorize?response_type=code&state=DGqPgPiUttg2Wy79OsLA2w&code_challenge=SX1FT89oOK6anVssPJ5dn7ZqenmPkjF5rgYrcTLRnjQ&code_challenge_method=S256&client_id=MyProject_Maui&scope=offline_access%20MyProject&redirect_uri=myproject%3A%2F%2F - null null 2024-05-10 15:02:13.093 +00:00 [INF] The request URI matched a server endpoint: "Authorization". 2024-05-10 15:02:13.093 +00:00 [INF] The authorization request was successfully extracted: { "response_type": "code", "state": "DGqPgPiUttg2Wy79OsLA2w", "code_challenge": "SX1FT89oOK6anVssPJ5dn7ZqenmPkjF5rgYrcTLRnjQ", "code_challenge_method": "S256", "client_id": "MyProject_Maui", "scope": "offline_access MyProject", "redirect_uri": "myproject://" }. 2024-05-10 15:02:13.127 +00:00 [INF] The authorization request was successfully validated. 2024-05-10 15:02:13.136 +00:00 [INF] Executing endpoint 'Volo.Abp.OpenIddict.Controllers.AuthorizeController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' 2024-05-10 15:02:13.137 +00:00 [INF] Route matched with {action = "Handle", controller = "Authorize", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] HandleAsync() on controller Volo.Abp.OpenIddict.Controllers.AuthorizeController (Volo.Abp.OpenIddict.AspNetCore). 2024-05-10 15:02:13.137 +00:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy 2024-05-10 15:02:13.138 +00:00 [INF] Executing action method Volo.Abp.OpenIddict.Controllers.AuthorizeController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore) - Validation state: "Valid" 2024-05-10 15:02:13.145 +00:00 [INF] Executed action method Volo.Abp.OpenIddict.Controllers.AuthorizeController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore), returned result Microsoft.AspNetCore.Mvc.ChallengeResult in 7.3277ms. 2024-05-10 15:02:13.145 +00:00 [INF] Executing ChallengeResult with authentication schemes (["Identity.Application"]). 2024-05-10 15:02:13.145 +00:00 [INF] AuthenticationScheme: Identity.Application was challenged. 2024-05-10 15:02:13.145 +00:00 [INF] Executed action Volo.Abp.OpenIddict.Controllers.AuthorizeController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore) in 8.7755ms 2024-05-10 15:02:13.145 +00:00 [INF] Executed endpoint 'Volo.Abp.OpenIddict.Controllers.AuthorizeController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' 2024-05-10 15:02:13.146 +00:00 [INF] Request finished HTTP/1.1 GET https://myproject.azurewebsites.net/connect/authorize?response_type=code&state=DGqPgPiUttg2Wy79OsLA2w&code_challenge=SX1FT89oOK6anVssPJ5dn7ZqenmPkjF5rgYrcTLRnjQ&code_challenge_method=S256&client_id=MyProject_Maui&scope=offline_access%20MyProject&redirect_uri=myproject%3A%2F%2F - 302 null null 53.7288ms 2024-05-10 15:02:13.214 +00:00 [INF] Request starting HTTP/1.1 GET https://myproject.azurewebsites.net/Account/Login?ReturnUrl=%2Fconnect%2Fauthorize%3Fresponse_type%3Dcode%26state%3DDGqPgPiUttg2Wy79OsLA2w%26code_challenge%3DSX1FT89oOK6anVssPJ5dn7ZqenmPkjF5rgYrcTLRnjQ%26code_challenge_method%3DS256%26client_id%3DMyProject_Maui%26scope%3Doffline_access%2520MyProject%26redirect_uri%3Dmyproject%253A%252F%252F - null null 2024-05-10 15:02:13.221 +00:00 [INF] Executing endpoint '/Account/Login' 2024-05-10 15:02:13.221 +00:00 [INF] Route matched with {page = "/Account/Login", area = "", action = "", controller = ""}. Executing page /Account/Login 2024-05-10 15:02:13.221 +00:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy 2024-05-10 15:02:13.260 +00:00 [INF] Executing handler method Volo.Abp.Account.Public.Web.Pages.Account.LoginModel.OnGetAsync - ModelState is "Valid" 2024-05-10 15:02:13.261 +00:00 [INF] Executed handler method OnGetAsync, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. 2024-05-10 15:02:13.281 +00:00 [INF] Executed page /Account/Login in 60.2635ms 2024-05-10 15:02:13.281 +00:00 [INF] Executed endpoint '/Account/Login' Health status requests begin after this


6 Answer(s)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    Can you try setting the log level to Debug and sharing the iOS and Android logs?

    liming.ma@volosoft.com
    Thanks

    
    public class Program
    {
        public async static Task<int> Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration()
                .MinimumLevel.Debug()
                .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning)
                .Enrich.FromLogContext()
                .WriteTo.Async(c => c.File("Logs/logs.txt"))
                .WriteTo.Async(c => c.Console())
                .CreateLogger();
    
  • User Avatar
    0
    darutter created

    I sent you the output of the debug log. Do you have any idea why the login doesn't progress for the android?

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    I didn't receive the logs. Can you share it by https://wetransfer.com/ liming.ma@volosoft.com

    Thanks

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    I have checked the logs. There is no problem with the authserver website.

    The Android app doesn't send the authorization_code request like IOS does.

    So this is a client problem. Can you check if there are any client logs?

  • User Avatar
    0
    darutter created

    There are no client logs that I can find. Is there anything you can suggest to determine why the difference??

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    I have no experience with MAUI/Android

Made with ❤️ on ABP v8.2.0-preview Updated on March 25, 2024, 15:11