祝你今天愉快。我是C#和OAuth的新手。我正在尝试使用RestSharp在Blazor中实现OAuth2。我有以下代码:
@page"/influfonsoft"@使用System.Globalization
输液器
请求身份验证
@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);
}
}
它本应该将我的应用程序重定向到登录页面,但现在它什么都没做。我试过谷歌,但我仍然没有得到它:(。此外,一旦我获得授权,我如何开始调用api。非常感谢任何示例代码。谢谢。
您应该通过发送HTTP状态代码302,然后在重定向URL中指定身份验证服务器URL和查询参数。
我对您使用的东西并不太熟悉,但据我所知,您实际上根本没有重定向。
您使用RestSharp将POST请求发送到OAuth URL,该URL不重定向用户,而只是从应用程序发送请求并将响应保存在tResponse
中。
您似乎需要使用IUriHelper#NavigateTo(url)
重定向到OAuth页面。您可以使用@inject IUriHelper uriHelper
注入它,然后用它的参数构建URL,然后将其传递给uriHelper.NavigateTo(url)
。希望这能有所帮助。
链接:
使用参数在blazor中重定向
https://medium.com/cloudnimble/redirects-in-blazor-apps-75b3f4709d57