Created
September 26, 2014 09:45
-
-
Save markwalsh-liverpool/8fb361a9df0dcf034caf to your computer and use it in GitHub Desktop.
Controller
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[RoutePrefix("login")] | |
public class LoginController : ApiController | |
{ | |
private readonly ITokenProvider _tokenProvider; | |
private readonly IUserRepository _userRepository; | |
public LoginController(ITokenProvider tokenProvider, IUserRepository userRepository) | |
{ | |
_tokenProvider = tokenProvider; | |
_userRepository = userRepository; | |
} | |
[HttpPost] | |
[Route("")] | |
public LoginResponse Login([FromBody] LoginRequest credentials) | |
{ | |
var loginResponse = new LoginResponse {Authenticated = false}; | |
if (TryLogon(credentials.Email, credentials.Password)) | |
{ | |
loginResponse.Token = _tokenProvider.GenerateToken(credentials.Email); | |
loginResponse.Authenticated = true; | |
} | |
else | |
{ | |
loginResponse.Authenticated = false; | |
} | |
return loginResponse; | |
} | |
private bool TryLogon(string email, string password) | |
{ | |
IUser user = _userRepository.GetUserByEmail(email); | |
return PasswordHelper.ValidatePassword(password, user.PasswordHash); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment