Exemplo n.º 1
0
        public async Task <ActionResult> Login([FromBody] RegistrationModel model)
        {
            RetroUser user = await userManager.FindByEmailAsync(model.Email);

            if (user != null && await userManager.CheckPasswordAsync(user, model.Password))
            {
                var authClaims = new[]
                {
                    new Claim(JwtRegisteredClaimNames.Sub, user.Id.ToString()),
                    new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())
                };

                var authSigninKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("SecureKey"));

                var token = new JwtSecurityToken(
                    claims: authClaims,
                    expires: DateTime.Now.AddHours(24)
                    );

                return(Ok(new
                {
                    token = new JwtSecurityTokenHandler().WriteToken(token),
                    expiration = token.ValidTo,
                    id = user.Id.ToString()
                }));
            }

            return(Unauthorized());
        }
Exemplo n.º 2
0
        public async Task <ActionResult> Register([FromBody] RegistrationModel model)
        {
            if (ModelState.IsValid && IsValid(model.Email) && IsValid(model.Password))
            {
                RetroUser user = new RetroUser
                {
                    Email          = model.Email,
                    UserName       = model.Email,
                    LockoutEnabled = false
                };

                var result = await userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    return(Ok());
                }
                else
                {
                    return(StatusCode(409));
                }
            }
            else
            {
                return(BadRequest());
            }
        }