예제 #1
0
        public IHttpActionResult Post()
        {
            var claims = new[]
            {
                new Claim(ClaimTypes.NameIdentifier, "userid"),
                new Claim("issuer", "issuer")
            };
            var jwt = TokenManager.CreateJwtToken(DateTime.Now.AddMinutes(30), claims);

            return(Ok(jwt));
        }
예제 #2
0
        public HttpResponseMessage Login(LoginBindingModel login)
        {
            if (login.Username == "admin" && login.Password == "password")  //Do real auth
            {
                string role     = "Librarian";
                var    jwtToken = TokenManager.CreateJwtToken(login.Username, role);

                return(new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new ObjectContent <object>(new
                    {
                        UserName = login.Username,
                        Roles = role,
                        AccessToken = jwtToken
                    }, Configuration.Formatters.JsonFormatter)
                });
            }
            return(new HttpResponseMessage(HttpStatusCode.BadRequest));
        }
예제 #3
0
        public HttpResponseMessage Authenticate(LoginRequest login)
        {
            if (login == null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            bool isCredentialValid = false;

            new LoginDataAccess().ValidateUser(login.Username, login.Password, out isCredentialValid); //true; //Valida a la base de datos;

            if (isCredentialValid)
            {
                var token = TokenManager.CreateJwtToken(login.Username);//TokenGenerator.GenerateTokenJwt(login.Username);
                return(Request.CreateResponse <string>(HttpStatusCode.OK, token));
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.Unauthorized));
            }
        }
예제 #4
0
        public async void Should_ReturnOk_OnLogin_WhenAllConditionsMet()
        {
            var login = new AuthController.LoginRequest()
            {
                User = Mocks.UserRepository.UserId, Password = Mocks.UserRepository.TestPw,
            };

            IActionResult result = await controller.Login(login);

            Assert.IsType <OkObjectResult>(result);

            OkObjectResult res = result as OkObjectResult;

            Assert.IsType <AuthController.LoginResponse>(res.Value);

            AuthController.LoginResponse user = res.Value as AuthController.LoginResponse;

            Assert.Equal(Mocks.UserRepository.TestName, user.Name);

            TokenManager mngr  = new TokenManager(settings);
            var          token = mngr.CreateJwtToken(Mocks.UserRepository.TestName, Mocks.UserRepository.UserId);

            Assert.Equal(token, user.AccessToken);
        }