public async Task Login([FromForm] string username, [FromForm] string password) { //try //{ var user = await ApplicationUser.LoginGet(_userManager, username, password); //} //catch(Exception e) //{ // var asd = 1; //} if (user == null) { Response.StatusCode = 400; await Response.WriteAsync("Invalid username or password."); return; } var identity = AuthJWT.GetIdentity(user); var encodedJwt = AuthJWT.GenerateMainToken(identity); var encodedRefJwt = AuthJWT.GenerateRefreshToken(); await user.SetRefreshToken(_db, encodedRefJwt); var response = new { access_token = encodedJwt, refresh_token = encodedRefJwt, username = identity.Name }; // сериализация ответа Response.ContentType = "application/json"; await Response.WriteAsync(JsonConvert.SerializeObject(response, new JsonSerializerSettings { Formatting = Formatting.Indented })); }
public async Task Register([FromForm] RegisterModel model)//, string confirmPassword { if (!ModelState.IsValid) { Response.StatusCode = 400; return; } var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; user.Validation(new ValidationInput()); var result = await _userManager.CreateAsync(user, model.Password); if (!result.Succeeded) { Response.StatusCode = 404; return; } var identity = AuthJWT.GetIdentity(user); if (identity == null) { Response.StatusCode = 500; // await Response.WriteAsync("Invalid username or password."); return; } var encodedJwt = AuthJWT.GenerateMainToken(identity); var encodedRefJwt = AuthJWT.GenerateRefreshToken(); await user.SetRefreshToken(_db, encodedRefJwt); //--------этот блок для подтверждения почты //var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); //var callbackUrl = Url.Action( // "ConfirmEmail", // "Account", // new { userId = user.Id, code = code }, // protocol: HttpContext.Request.Scheme); //EmailService emailService = new EmailService(); //await emailService.SendEmailAsync(model.Email, "Confirm your account", // $"Подтвердите регистрацию, перейдя по ссылке: <a href='{callbackUrl}'>link</a>"); var response = new { access_token = encodedJwt, refresh_token = encodedRefJwt, username = identity.Name }; // сериализация ответа Response.ContentType = "application/json"; await Response.WriteAsync(JsonConvert.SerializeObject(response, new JsonSerializerSettings { Formatting = Formatting.Indented })); }