public AuthenticationResult AuthenticateUserByToken(string token, string ip = "127.0.0.1")
{
var result = new AuthenticationResult();
_session = new Session();
if (String.IsNullOrWhiteSpace(token)) {
result = InvalidLogin("No token provided");
} else {
this.CurrentCredentials = new Credentials { Token = Guid.Parse(token), IP = ip };
var user = FindUserByAuthenticationToken();
if (user == null) {
result = InvalidLogin("Invalid token");
} else {
//success
user.AddLogEntry("Login", "User logged in by token");
result.Session = CreateSession(user);
SetUserLoginStats(user);
UserAuthenticated(user);
result.Authenticated = true;
result.User = user;
result.Message = Properties.Resources.UserAuthenticated;
_session.SaveChanges();
}
}
_session.Dispose();
return result;
}