Skip to content

Instantly share code, notes, and snippets.

@markwalsh-liverpool
Created September 26, 2014 09:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save markwalsh-liverpool/8fb361a9df0dcf034caf to your computer and use it in GitHub Desktop.
Save markwalsh-liverpool/8fb361a9df0dcf034caf to your computer and use it in GitHub Desktop.
Controller
[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