Как перенаправить на страницу входа после выполнения запроса авторизации ouath2

Добрый день. Я новичок в C # и OAuth. Я пытаюсь реализовать OAuth2 в Blazor с помощью RestSharp. У меня такой код:

@page "/ infusionsoft" @ using System.Globalization

Infusionsoft

Запросить аутентификацию

@code {
    @using RestSharp;
    @using RestSharp.Authenticators;
    @using Newtonsoft.Json;

public void Foo1()
{
        string url = "https://signin.infusionsoft.com/app/oauth/authorize";
        string client_id = "myid";
        string client_secret = "mysecret";

        //request token
        var restclient = new RestClient(url);
        RestRequest request = new RestRequest("request/oauth") { Method = Method.POST };
        request.AddHeader("Accept", "application/json");
        request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
        request.AddParameter("client_id", client_id);
       request.AddParameter("client_secret", client_secret);
        request.AddParameter("grant_type", "authorization_code");//+

        IRestResponse tResponse = restclient.Execute(request);
        Console.WriteLine(tResponse.Content);


}

}

Оно должно перенаправить мое приложение на страницу входа, но сейчас ничего не делает. Я пробовал использовать Google, но все еще не понимаю :(. Кроме того, как мне начать вызывать API после получения авторизации? Любой пример кода приветствуется. Спасибо.


person Mark Daniel Louwe    schedule 19.04.2020    source источник
comment
Ответ должен направить вас в правильном направлении: stackoverflow.com/questions/61210462/   -  person agua from mars    schedule 19.04.2020


Ответы (2)


Вы должны перенаправить пользователя на сервер аутентификации, отправив код состояния HTTP 302, а затем указав URL-адрес сервера аутентификации и параметры запроса в URL-адресе перенаправления.

person ajay gandhi    schedule 19.04.2020

Я не слишком хорошо знаком с тем, что вы используете, но, насколько я могу судить, вы на самом деле вообще не перенаправляете.

Вы отправляете запрос POST на URL-адрес OAuth с помощью RestSharp, который не перенаправляет пользователя, а вместо этого просто отправляет запрос из вашего приложения и сохраняет ответ в tResponse.

Похоже, вам нужно использовать IUriHelper#NavigateTo(url) для перенаправления на страницу OAuth. Вы можете ввести его с помощью @inject IUriHelper uriHelper, затем создать URL-адрес с его параметрами и затем передать его uriHelper.NavigateTo(url). Надеюсь это поможет.

Ссылки:

Перенаправление в blazor с параметром

https://medium.com/cloudnimble/redirects-in-blazor-apps-75b3f4709d57

person li223    schedule 19.04.2020