示例#1
0
        public async Task <IActionResult> Login([FromBody] Login login)
        {
            await this.Authenticate(login.Username);

            var user = await _userManager.FindByNameAsync(login.Username);

            var token = MakeToken(user);

            var result = new PersonLoginResponse
            {
                Token    = token,
                Id       = user.Id,
                UserName = user.UserName
            };

            if (user is Admin)
            {
                result.Role = "admin";
            }
            else
            {
                result.Role = "user";
            }

            if (!Request.Headers.ContainsKey("www-authenticate"))
            {
                Request.Headers.Append("www-authenticate", "Bearer " + token);
            }


            Response.Cookies.Append("www-authenticate", token,
                                    new CookieOptions
            {
                MaxAge = TimeSpan.FromMinutes(60)
            });

            Response.Cookies.Append(".AspNetCore.Application.Id", token,
                                    new CookieOptions
            {
                MaxAge = TimeSpan.FromMinutes(60)
            });

            return(Ok(result));
        }
示例#2
0
        public async Task <IActionResult> Register([FromBody] Register register)
        {
            var user = this.mappersFacade.PersonMapper.MapPersonFromRegister(register);

            var identityResult = await _userManager.CreateAsync(user, register.Password);

            if (!identityResult.Succeeded)
            {
                return(BadRequest(identityResult.Errors));
            }

            await _signInManager.SignInAsync(user, false);

            var token  = MakeToken(user);
            var result = new PersonLoginResponse
            {
                Token = token,
                Id    = user.Id,
                Role  = "user"
            };

            return(Ok(result));
        }