Example #1
0
        public TokenValueResult AuthenticateUser(UserInfo userInfo, String password, Device device)
        {
            String[] errors = ValidateLoginInfo(userInfo.Email, password);
            if(errors.Length > 0) {
                return new TokenValueResult(errors);
            }

            UserProvider userProvider = new UserProvider();
            long userId = userProvider.GetUserId(userInfo.Email, password);
            if(userId < 0) {
                return new TokenValueResult(new String[] { Result.EMAIL_PW_ERROR });
            }

            if(!userProvider.IsUserActive(userId)) {
                return new TokenValueResult(new String[0]) { NeedsActivation = true, Token = new Token { UserId = userId } };
            }

            Token token = new Token() { TokenString = TokenGenerator.GenerateToken((int)userId), DeviceType = device, DateExpires = GetNewTokenExpirationDate(device), UserId = userId };
            TokenProvider tokenProvider = new TokenProvider();
            tokenProvider.SaveToken(token);

            TokenValueResult tokenValueResult = new TokenValueResult(token);
            return tokenValueResult;
        }