Код: Выделить всё
PostУ кого-нибудь еще была такая проблема?
Код: Выделить всё
public async Task OnPostAsync(string returnUrl = null)
{
returnUrl ??= Url.Content("~/");
ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
if (ModelState.IsValid)
{
var result = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: false);
if (result.Succeeded)
{
var client = _httpClientFactory.CreateClient();
using (var requestMessage = new HttpRequestMessage(HttpMethod.Post, "https://api.libreview.io/llu/auth/login"))
{
requestMessage.Headers.Add("version", "4.7");
requestMessage.Headers.Add("product", "llu.android");
requestMessage.Headers.Add("User-Agent", "LiveDiabetes/1.0.0");
requestMessage.Headers.Add("Accept", "*/*");
requestMessage.Headers.Add("Accept-Enconding", "gzip,deflate,br");
requestMessage.Headers.Add("Connection", "keep-alive");
requestMessage.Content = JsonContent.Create(new { email = Input.Email, password = Input.Password });
var response = await client.SendAsync(requestMessage);
var content = await response.Content.ReadAsStringAsync();
JObject loginjson = JsonConvert.DeserializeObject(content);
if (loginjson["data"]?["authTicket"]?["token"] == null)
{
var localLogin = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: false);
if (localLogin.Succeeded)
{
_logger.LogInformation("User logged in locally.");
return LocalRedirect(returnUrl);
}
else
{
ModelState.AddModelError(string.Empty, "Login failed. The user does not exist or password is incorrect.");
}
}
HttpContext.Session.SetString("token", loginjson["data"]["authTicket"]["token"].ToString());
}
using (var requestMessage = new HttpRequestMessage(HttpMethod.Get, "https://api.libreview.io/llu/connections"))
{
requestMessage.Headers.Add("Authorization", "Bearer " + HttpContext.Session.GetString("token"));
requestMessage.Headers.Add("version", "4.7");
requestMessage.Headers.Add("product", "llu.android");
requestMessage.Headers.Add("User-Agent", "LiveDiabetes/1.0.0");
requestMessage.Headers.Add("Accept", "*/*");
requestMessage.Headers.Add("Accept-Enconding", "gzip,deflate,br");
requestMessage.Headers.Add("Connection", "keep-alive");
var response = await client.SendAsync(requestMessage);
var content = await response.Content.ReadAsStringAsync();
JObject connectionjson = JsonConvert.DeserializeObject(content);
HttpContext.Session.SetString("patientid", connectionjson["data"][0]["patientId"].ToString());
}
_logger.LogInformation("User logged in.");
return LocalRedirect(returnUrl);
}
else
{
ModelState.AddModelError(string.Empty, "Este utilizador não existe.");
return Page();
}
}
return Page();
}
Проблема не в том if, который регистрируется в клиенте, когда я не получаю результатов от API, потому что я могу войти в систему, используя свой сервер базы данных.
Подробнее здесь: https://stackoverflow.com/questions/783 ... ure-server