Open Closed

redirect_uri problem #7210


User avatar
0
cetin.sahin created
  • ABP Framework version: v8.0.1
  • UI Type: Blazor Server
  • Database System: EF Core (SQL Server)
  • Tiered (for MVC) or Auth Server Separated (for Angular): Tiered
  • Exception message and full stack trace: No Exception
  • Steps to reproduce the issue: Hi. Our problem is When the user comes to our Blazor page with querystring , we want him to be directed to the same link again after successful login. For example, when the user comes to us with the URL https://testproject.com\myuser?id=1234, we want the user to return to the \myuser?id=1234 page instead of the default page when returning to the Blazor application after authentication.We try to override redirect_uri but as i understand correctly OpenIdDict library overrides it Thank you

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

    hi

    Can you share full logs of all related requests?

    Thanks

    liming.ma@volosoft.com

  • User Avatar
    0
    cetin.sahin created

    Hi.Actually request did not shown on logs. But i share it anyway https://we.tl/t-wdky8sp5FI

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    Thanks I will check and find a way.

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    You can use the URL like: https://localhost:44309/account/login?returnUrl=/MyPage The returnUrl parameter can do this.

  • User Avatar
    0
    cetin.sahin created

    Hi ; we redirect non-login user to login page with tihs code. how can we transport return url with this code

        app.Use(async (httpContext, next) =>
        {
            if (!httpContext.Request.Path.ToString().Contains("account/login"))
            {
                if (httpContext.User.Identity is not { IsAuthenticated: true })
                {
                    httpContext.Response.Redirect("/account/login");
                    return;
                }
            }
    
    
            await next();
        });
    
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer
    var yourPage = get page(querystring) from httpcontext
    httpContext.Response.Redirect("/account/login?returnUrl=" + yourPage);
    
  • User Avatar
    0
    cetin.sahin created

    My page is dynamic. for example : https://subdonamin.domain.com/crm-aday-details?adayId=4503#0 My scenario ;

    1. User can go to link with parameter.
    2. if user doesn't login, we want to redirect to login page with user return url
    3. But we cant trasport dynamic return url to login page.

    we get reference from this ticket https://support.abp.io/QA/Questions/5206/Blazor-Server---Force-Authentication-For-Root--Entire-Site

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    You can try that:

    app.Use(async (httpContext, next) =>
    {
        if (!httpContext.Request.Path.ToString().Contains("account/login"))
        {
            if (httpContext.User.Identity is not { IsAuthenticated: true })
            {
                ///crm-aday-details?adayId=4503#0
                var path = httpContext.Request.GetEncodedPathAndQuery();
                if (path.IsNullOrWhiteSpace() || path == "/")
                {
                    httpContext.Response.Redirect("/account/login");
                }
                else
                {
                    httpContext.Response.Redirect("/account/login?returnUrl=" + path);
                }
    
                return;
            }
        }
    
        await next();
    });
    
  • User Avatar
    0
    cetin.sahin created

    thanks you. it works fine I implment similiar code but I will use your code .

    I implement this code. But your code is more than smart to my code //string returnUrl = httpContext.Request.Path.ToString() + httpContext.Request.QueryString.ToString(); //if(returnUrl != null && returnUrl != "/") //httpContext.Response.Redirect("/account/login?returnUrl=" + returnUrl); //else //httpContext.Response.Redirect("/account/login");

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    Great

Made with ❤️ on ABP v9.1.0-preview. Updated on December 10, 2024, 06:38