Esempio n. 1
0
        public async Task <IActionResult> AjaxLogin()
        {
            var          email      = "";
            var          password   = "";
            var          rememberMe = false;
            MemoryStream stream     = new MemoryStream();

            Request.Body.CopyTo(stream);
            stream.Position = 0;
            //if (username == null)
            //{
            //    return RedirectToAction(nameof(Index));
            //}

            using (StreamReader reader = new StreamReader(stream))
            {
                string requestBody = reader.ReadToEnd();
                if (requestBody.Length > 0)
                {
                    var obj = JsonConvert.DeserializeObject <AjaxLoginViewModel>(requestBody);

                    if (obj != null)
                    {
                        email      = obj.Email;
                        password   = obj.Password;
                        rememberMe = obj.RememberMe;
                    }
                    if (password != null || email != null)
                    {
                        var result = await _signInManager.PasswordSignInAsync(email, password, rememberMe, lockoutOnFailure : false);

                        if (result.Succeeded)
                        {
                            var user = await _userManager.FindByEmailAsync(email);

                            var customToken = await _firebaseService.GenerateCustomToken(user.Id);

                            HttpContext.Session.SetString("FirebaseToken", customToken);

                            return(new JsonResult("Success"));
                        }

                        else
                        {
                            return(BadRequest("Invalid login attempt, please check your credentials"));
                        }
                    }
                }
            }

            return(new JsonResult("Suchsecs"));
        }