Пример #1
0
        public async Task <IActionResult> Register([FromBody] LoginParameters login)
        {
            //ViewData["ReturnUrl"] = returnUrl;
            //if (ModelState.IsValid)
            //{
            var user = new IdentityUser {
                UserName = login.Email, Email = login.Email
            };
            var result = await _userManager.CreateAsync(user, login.Password);

            if (result.Succeeded)
            {
                _logger.LogInformation("User created a new account with password.");

                //var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
                //var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme);
                //await _emailSender.SendEmailConfirmationAsync(login.Email, callbackUrl);

                //await _signInManager.SignInAsync(user, isPersistent: false);
                //_logger.LogInformation("User created a new account with password.");
                //return RedirectToLocal(returnUrl);
            }
            //AddErrors(result);
            //}

            // If we got this far, something failed, redisplay form
            return(Ok());
        }
Пример #2
0
        public async Task <IActionResult> GenerateToken([FromBody] LoginParameters login)
        {
            if (login.Email != null || login.Password != null)
            {
                var user = await _userManager.FindByEmailAsync(login.Email);

                if (user != null)
                {
                    var result = await _signInManager.CheckPasswordSignInAsync(user, login.Password, false);

                    if (result.Succeeded)
                    {
                        var claims = new[]
                        {
                            new Claim(JwtRegisteredClaimNames.Sub, user.Email),
                            new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                        };

                        var key   = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Tokens:Key"]));
                        var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

                        var token = new JwtSecurityToken(_config["Tokens:Issuer"],
                                                         _config["Tokens:Issuer"],
                                                         claims,
                                                         expires: DateTime.Now.AddDays(30),
                                                         signingCredentials: creds);

                        return(Ok(new { token = new JwtSecurityTokenHandler().WriteToken(token) }));
                    }
                    else
                    {
                        return(NotFound(new { error = "" }));
                    }
                }
                else
                {
                    return(NotFound());
                }
            }

            return(BadRequest("Could not create token"));
        }