Как перенаправить на страницу входа после выполнения запроса авторизации ouath2 - PullRequest
0 голосов
/ 19 апреля 2020

добрый день. Я новичок в 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, как только я получу авторизацию. Любой пример кода очень важен. Спасибо.

Ответы [ 2 ]

2 голосов
/ 19 апреля 2020

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

1 голос
/ 19 апреля 2020

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

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

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

Ссылки:

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

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

...