public class LoginController : Controller
{
private readonly IHttpClientFactory _clientFactory;
public LoginController(IHttpClientFactory clientFactory)
{
_clientFactory = clientFactory;
}
public IActionResult Index()
{
return View();
}
public async Task Login(string username,string pwd)
{
//todo:调用id4server获取token
string token = await GetToken(username, pwd);
ResultDto<string> resultDto = new ResultDto<string>();
resultDto.Data = token;
resultDto.StatusCode = ResultCodes.OK;
resultDto.Message = "操作成功";
return Json(resultDto);
}
///
/// 调用id4server获取token
///
///
///
///
private async Task<string> GetToken(string username, string pwd)
{
var client = _clientFactory.CreateClient();
//传输json格式
// var content= new StringContent("xxx=xxx", Encoding.UTF8,"application/json");
// 模拟表单提交
var content = new StringContent($"client_id=user_clientid&client_secret=user_secret&grant_type=password&username={username}&password={pwd}", Encoding.UTF8, "application/x-www-form-urlencoded");
var httpResponse = await client.PostAsync($"http://localhost:5000/connect/token", content);
var jsonData= await httpResponse.Content.ReadAsStringAsync();
AuthModel model = JsonConvert.DeserializeObject(jsonData);
return model.access_token;
}
}