Ejemplo n.º 1
0
        // LoginResponse: dump a login response to the console
        private void MyLoginResponse(XmlRpcResponse response)
        {
            string firstname = "Un";
            string lastname  = "Known";
            string myname;

            LoginResponseData responsedata = new LoginResponseData();

            responsedata.Parse((Hashtable)response.Value);
            firstname = responsedata.FirstName;
            lastname  = responsedata.LastName;

            firstname = firstname.Trim('"');
            myname    = firstname + " " + lastname;

            SayToUser("My name is     : " + myname);
            SayToUser("AgentID        : " + this.frame.AgentID);
            SayToUser("SessionID      : " + this.frame.SessionID);
            SayToUser("SecureSessionID: " + this.frame.SecureSessionID);
            SayToUser("InventoryRoot  : " + this.frame.InventoryRoot);
            SayToUser("Logged in.");
            SayToUser("");

            StatusSetName(myname);
            StatusSetUUID(this.frame.AgentID.ToString());
//            skeleton = responsedata.InventorySkeleton;
            loggedin = true;
            StatusSetMsg("Logged in.");
        }
Ejemplo n.º 2
0
        private void OnLogin(IResponse loginResponse)
        {
            if (loginResponse.Error != null && !string.IsNullOrEmpty(loginResponse.Error.Code))
            {
                LogConsole("Error login: "******", " + loginResponse.Error.Message);
                return;
            }

            LoginResponseData data = (LoginResponseData)loginResponse.Data;

            LogConsole("Token: " + data.Token);
            m_token    = data.Token;
            m_userGUID = data.UserInfo.GUID;

            // Get Quotes
            //IRequest req = MarketData.SubscribeForQuotes(m_token, m_userGUID);
            IRequest req = TradingApp.GetInitialAppData(m_token, m_userGUID);

            Send(req, response =>
            {
                if (response.Error != null && !string.IsNullOrEmpty(response.Error.Code))
                {
                    LogConsole("Error: " + response.Error.Code + ", " + response.Error.Message);
                }
                else
                {
                    LogConsole("Success");
                }
            });
        }
Ejemplo n.º 3
0
        public Error Login(LoginHandlerMode loginMode, string playerName, string playerLoginKey, out LoginResponseData loginData)
        {
            loginData = null;

            uint playerId;

            if (!uint.TryParse(playerName, out playerId))
            {
                return(Error.PlayerNotFound);
            }

            loginData = new LoginResponseData
            {
                Player = new LoginResponseData.PlayerData
                {
                    Banned = false,
                    Id     = playerId,
                    Name   = "Player " + playerId,
                    Rights = PlayerRights.Basic
                },
                Achievements   = new List <Achievement>(),
                ThemePurchases = themeManager.Themes.Where(theme => theme.Id != Theme.DEFAULT_THEME_ID)
                                 .Select(theme => new ThemePurchase {
                    ThemeId = theme.Id
                })
                                 .ToList()
            };

            return(Error.Ok);
        }
Ejemplo n.º 4
0
    private IEnumerator HandleLoginRequest(NetworkMessage x)
    {
        var msg = x.ReadMessage <LoginRequestData>();
        LoginResponseData resp = new LoginResponseData();
        Result <bool>     r2   = Login(msg.userName, msg.passwordHash, x.conn);

        yield return(r2.WaitUntilDone());

        if (r2.Value)
        {
            resp.isSuccessful = true;
            Result <AccountInfo> r = GetAccountByUserName(msg.userName);
            yield return(r.WaitUntilDone());

            var user = r.Value;
            resp.account = new AccountInfo(user.userID, user.userName, user.data);
            if (OnLoggedIn != null)
            {
                OnLoggedIn(new AccountInfo(user.userID, user.userName, user.data));
            }
        }
        else
        {
            resp.isSuccessful = false;
            if (OnLoginFailed != null)
            {
                OnLoginFailed();
            }
        }
        x.conn.Send((short)CustomMessageTypes.LoginResponse, resp);
    }
Ejemplo n.º 5
0
        public LoginResponseData GetJwt(User user, string refreshToken, string secret, string accessExpire)
        {
            var tokenHandler = new JwtSecurityTokenHandler();
            var key          = Encoding.ASCII.GetBytes(secret);

            //====Moj kod do roli ====
            var roles  = GetUserRoles(user);
            var claims = new List <Claim> {
                new Claim(ClaimTypes.Name, user.Id.ToString())
            };

            foreach (var v in roles)
            {
                claims.Add(new Claim(ClaimTypes.Role, v.Name));
            }
            //========Koniec===========

            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject            = new ClaimsIdentity(claims),
                Expires            = DateTime.UtcNow.AddMinutes(double.Parse(accessExpire)),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key),
                                                            SecurityAlgorithms.HmacSha256Signature)
            };
            var token       = tokenHandler.CreateToken(tokenDescriptor);
            var tokenString = tokenHandler.WriteToken(token);

            var response = new LoginResponseData
            {
                AccessToken  = tokenString,
                RefreshToken = refreshToken
            };

            return(response);
        }
Ejemplo n.º 6
0
        internal static void AuthUser(LoginResponseData payload)
        {
            LoginData = payload;
            IdeaBagApi.Instance.SetAuthToken(payload.Token);
            PreferenceManager.Instance.AddEntry("loginData", JsonConvert.SerializeObject(payload));

            Toast.MakeText(App.CurrentActivity, "Logged in successfully.", ToastLength.Long).Show();
        }
Ejemplo n.º 7
0
        internal static void Logout()
        {
            PreferenceManager.Instance.AddEntry("loginData", string.Empty);
            PreferenceManager.Instance.AddEntry("expiresIn", string.Empty);
            LoginData = null;

            Toast.MakeText(App.CurrentActivity, "Logged out successfully.", ToastLength.Long).Show();
        }
Ejemplo n.º 8
0
        public async Task <LoginResponseData> GetByAppUserId(string AppUserId)
        {
            LoginResponseData user = new LoginResponseData();
            var _user = await _userRepository.GetByAppUserId(AppUserId);

            user.User = _user;
            return(user);
        }
    private void OnLoginAccepted(LoginResponseData data)
    {
        Debug.Log($"login successful! Got id: {data.ID}");

        ConnectionManager.Instance.PlayerId  = data.ID;
        ConnectionManager.Instance.LobbyData = data.LobbyData;

        SceneManager.LoadScene("Lobby", LoadSceneMode.Single);
    }
Ejemplo n.º 10
0
        public async Task <LoginResponseData> Login(LoginRequestData model, string ip)
        {
            if (_dbPatchMgr.GetStatus())
            {
                throw new ApplicationException("Database syncronization in progress, please try to login in few minutes...");
            }
            _dbPatchMgr.Sync();

            var refreshTokenLifeTime = ValidateClientAuthentication(model.ClientId, model.ClientSecret);
            var user = await _userRepo.FindUserByUsername(model.Username);

            if (user == null)
            {
                throw new ApplicationException("Invalid username or password");
            }
            if (await _userRepo.IsUserLogout(user))
            {
                throw new ApplicationException("User account is been logout");
            }
            if (!user.IsActive)
            {
                throw new ApplicationException("User account inactive");
            }
            if (_hasher.VerifyHashedPassword(user, user.PasswordHash, model.Password) == PasswordVerificationResult.Failed)
            {
                throw new ApplicationException("Invalid username or password");
            }
            var jwtSecurityToken = TokenUtility.GenerateJwtSecurityToken(_appConfig.GetSection("AppConfiguration"), TokenUtility.GenerateClaims(user.UserName, user.Id));
            var userVm           = UserExtension.BuildUserViewModel(user);
            var refreshToken     = TokenUtility.GenerateRefreshToken();

            await SaveRefreshToken(model.ClientId, model.Username, refreshToken, refreshTokenLifeTime, ip);

            user.LastLoginDate = DateTime.UtcNow;
            _userRepo.Update(user);
            var response = new LoginResponseData()
            {
                UserId            = userVm.UserID,
                Username          = userVm.Username,
                FullName          = userVm.FullName,
                ProfilePictureUrl = userVm.ProfilePictureUrl,
                Roles             = userVm.Roles,
                Token             = new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken),
                TokenExpires      = jwtSecurityToken.ValidTo,
                TokenIssued       = jwtSecurityToken.ValidFrom,
                RefreshToken      = refreshToken,
                Email             = userVm.Email
            };

            return(response);
        }
        public static LoginResponseData ExecuteStaticUser(String UserName, String Email, UserDbContext db, RefreshToken refreshToken = null)
        {
            var options = GetOptions();
            var now     = DateTime.UtcNow;
            var userId  = "1";

            var claims = new List <Claim>()
            {
                // new Claim(JwtRegisteredClaimNames.Sub, user.UserName), // TODO - Check to use it.
                new Claim(JwtRegisteredClaimNames.Email, Email),
                new Claim(JwtRegisteredClaimNames.NameId, "1"),
                new Claim(JwtRegisteredClaimNames.Jti, "1"),
                new Claim(JwtRegisteredClaimNames.Iat, new DateTimeOffset(now).ToUniversalTime().ToUnixTimeSeconds().ToString(), ClaimValueTypes.Integer64)
            };

            claims.Add(new Claim("UserId", userId));
            claims.Add(new Claim("Name", UserName));

            if (refreshToken == null)
            {
                refreshToken = new RefreshToken()
                {
                    UserId = userId,
                    Token  = Guid.NewGuid().ToString("N"),
                };
                //db.InsertNew(refreshToken);
            }

            refreshToken.IssuedUtc  = now;
            refreshToken.ExpiresUtc = now.Add(options.Expiration);
            //db.SaveChanges();

            var jwt = new JwtSecurityToken(
                issuer: options.Issuer,
                audience: options.Audience,
                claims: claims.ToArray(),
                notBefore: now,
                expires: now.Add(options.Expiration),
                signingCredentials: options.SigningCredentials);
            var encodedJwt = new JwtSecurityTokenHandler().WriteToken(jwt);
            var response   = new LoginResponseData
            {
                access_token  = encodedJwt,
                refresh_token = refreshToken.Token,
                expires_in    = (int)options.Expiration.TotalSeconds,
                userName      = UserName
            };

            return(response);
        }
Ejemplo n.º 12
0
        private Message BuildResponse(LoginResponseData res)
        {
            var message = new Message();
            var header  = new MessageHeader
            {
                Type        = MessageType.LOGIN_RESP,
                Attachments = res.Attachments
            };

            message.Header = header;
            message.Body   = new byte[1] {
                res.AuthStatusCode
            };
            return(message);
        }
Ejemplo n.º 13
0
    public static async Task ProcessLoginResponse(LoginResponseData response)
    {
        LOG.Log("Processing login response");

        if (response.ResponseType == LoginResponseType.Success)
        {
            LOG.Log("Log in was success!");
            await GameState.RefreshGameStateFromLoginResponse(response);

            GeneralRefresherService.Refresh();
            await ScreenChangerService.ChangeScreen(ScreenId.Universe);
        }
        else
        {
            LOG.Log($"Log failed {response.ResponseType}");
            ShowLoginResponse($"Login failed: {response.ResponseType}");
        }
    }
Ejemplo n.º 14
0
        private void Login()
        {
            m_pxConnector.Send(User.Login(m_NTconnection.Options.User, m_NTconnection.Options.Password), res => {
                if (res.Error != null && !string.IsNullOrEmpty(res.Error.Code))
                {
                    m_NTconnection.ProcessEventArgs(new ConnectionStatusEventArgs(m_NTconnection, ErrorCode.LoginFailed, res.Error.Message, ConnectionStatus.Disconnected, ConnectionStatus.Disconnected));
                    return;
                }

                LoginResponseData data = res.Data as LoginResponseData;
                if (data == null || string.IsNullOrEmpty(data.Token) || data.UserInfo == null || string.IsNullOrEmpty(data.UserInfo.GUID))
                {
                    m_NTconnection.ProcessEventArgs(new ConnectionStatusEventArgs(m_NTconnection, ErrorCode.LoginFailed, "Invalid LoginResponseData", ConnectionStatus.Disconnected, ConnectionStatus.Disconnected));
                    return;
                }

                m_token    = data.Token;
                m_userInfo = data.UserInfo;
                GetInitialAppData();
            });
        }
Ejemplo n.º 15
0
        public async Task <LoginResponseData> Login(LoginModel Login)
        {
            var isLogin = await userEntity.IsUserLoggedin(Login);

            if (isLogin == null)
            {
                loginResponseData = new LoginResponseData
                {
                    Message = "Username or password incorrect"
                };
                return(loginResponseData);
            }
            else
            {
                loginResponseData = new LoginResponseData
                {
                    Token   = isLogin,
                    Message = "Successfully Login"
                };
                return(loginResponseData);
            }
        }
        public SnowflakeSession(LoginResponseData loginResponseData)
        {
            this.SessionToken = loginResponseData.Token;

            this.MasterToken             = loginResponseData.MasterToken;
            this.ValidityInSeconds       = loginResponseData.ValidityInSeconds;
            this.MasterValidityInSeconds = loginResponseData.MasterValidityInSeconds;
            this.DisplayUserName         = loginResponseData.DisplayUserName;
            this.ServerVersion           = loginResponseData.ServerVersion;
            this.FirstLogin             = loginResponseData.FirstLogin;
            this.RemMeToken             = loginResponseData.RemMeToken;
            this.RemMeValidityInSeconds = loginResponseData.RemMeValidityInSeconds;
            this.HealthCheckInterval    = loginResponseData.HealthCheckInterval;
            this.NewClientForUpgrade    = loginResponseData.NewClientForUpgrade;
            this.SessionId = loginResponseData.SessionId;
            this.IdToken   = loginResponseData.IdToken;
            this.IdTokenValidityInSeconds = loginResponseData.IdTokenValidityInSeconds;
            this.DatabaseName             = loginResponseData.SessionInfo.DatabaseName;
            this.SchemaName    = loginResponseData.SessionInfo.SchemaName;
            this.WarehouseName = loginResponseData.SessionInfo.WarehouseName;
            this.RoleName      = loginResponseData.SessionInfo.RoleName;
        }
Ejemplo n.º 17
0
    public void DownloadSnipeApi()
    {
        UnityEngine.Debug.Log("DownloadSnipeApi - start");

        Process process = new Process();

        process.StartInfo.WorkingDirectory       = Application.dataPath + "/..";
        process.StartInfo.FileName               = "curl";
        process.StartInfo.Arguments              = $"-s -X POST \"https://edit-dev.snipe.dev/api/v1/auth\" -d \"login={mLogin}&password={mPassword}\"";
        process.StartInfo.UseShellExecute        = false;
        process.StartInfo.RedirectStandardOutput = true;
        process.Start();

        StreamReader reader = process.StandardOutput;
        string       output = reader.ReadToEnd();

        UnityEngine.Debug.Log("output " + output);

        LoginResponseData response = new LoginResponseData();

        UnityEditor.EditorJsonUtility.FromJsonOverwrite(output, response);
        string token = response.token;

        if (string.IsNullOrEmpty(token))
        {
            UnityEngine.Debug.Log("DownloadSnipeApi - FAILED to get token");
            return;
        }

        process = new Process();
        process.StartInfo.WorkingDirectory = mDirectoryPath;
        process.StartInfo.FileName         = "curl";
        process.StartInfo.Arguments        = $"-o SnipeApi.cs -H \"Authorization: Bearer {token}\" \"https://edit-dev.snipe.dev/api/v1/project/{mProjectId}/code/unityBindings\"";
        process.Start();

        UnityEngine.Debug.Log("DownloadSnipeApi - done");
    }
Ejemplo n.º 18
0
 private void OnRegisterFinished(LoginResponseData lrData)
 {
     Debug.Log("Success!");
     LoginSuccess(lrData);
 }
Ejemplo n.º 19
0
        public static LoginResponseData Execute(User user, AdoptMeDataContext db, RefreshToken refreshToken = null)
        {
            var options = GetOptions();
            var now     = DateTime.UtcNow;

            var claims = new List <Claim>()
            {
                new Claim(JwtRegisteredClaimNames.NameId, user.Id),
                new Claim(JwtRegisteredClaimNames.Jti, user.Id.ToString()),
                new Claim(JwtRegisteredClaimNames.Iat, new DateTimeOffset(now).ToUniversalTime().ToUnixTimeSeconds().ToString(), ClaimValueTypes.Integer64),
                new Claim(JwtRegisteredClaimNames.Sub, user.UserName),
            };

            var userClaims = db.UserClaims.Where(i => i.UserId == user.Id);

            foreach (var userClaim in userClaims)
            {
                claims.Add(new Claim(userClaim.ClaimType, userClaim.ClaimValue));
            }
            var userRoles = db.UserRoles.Where(i => i.UserId == user.Id);

            foreach (var userRole in userRoles)
            {
                var role = db.Roles.Single(i => i.Id == userRole.RoleId);
                claims.Add(new Claim(Extensions.RoleClaimType, role.Name));
            }

            if (refreshToken == null)
            {
                refreshToken = new RefreshToken()
                {
                    UserId = user.Id,
                    Token  = Guid.NewGuid().ToString("N"),
                };
                db.InsertNew(refreshToken);
            }

            refreshToken.IssuedUtc  = now;
            refreshToken.ExpiresUtc = now.Add(options.Expiration);
            db.SaveChanges();

            var jwt = new JwtSecurityToken(
                issuer: options.Issuer,
                audience: options.Audience,
                claims: claims.ToArray(),
                notBefore: now,
                expires: now.Add(options.Expiration),
                signingCredentials: options.SigningCredentials);
            var encodedJwt = new JwtSecurityTokenHandler().WriteToken(jwt);

            var response = new LoginResponseData
            {
                access_token  = encodedJwt,
                refresh_token = refreshToken.Token,
                expires_in    = (int)options.Expiration.TotalSeconds,
                userName      = user.UserName,
                firstName     = user.FirstName,
                lastName      = user.LastName,
                isAdmin       = claims.Any(i => i.Type == Extensions.RoleClaimType && i.Value == Extensions.AdminRole)
            };

            return(response);
        }
Ejemplo n.º 20
0
        public Error Login(LoginHandlerMode loginMode, string playerName, string playerLoginKey, out LoginResponseData loginData)
        {
            loginData = null;
            ApiResponse <LoginResponseData> response;

            try
            {
                response = loginMode == 0
                                   ? ApiCaller.CheckLoginKey(playerName, playerLoginKey)
                                   : ApiCaller.CheckLogin(playerName, playerLoginKey);
            }
            catch (Exception e)
            {
                logger.Error("Error loading player", e);
                return(Error.Unexpected);
            }

            if (!response.Success)
            {
                return(Error.InvalidLogin);
            }

            loginData = response.Data;
            return(Error.Ok);
        }
Ejemplo n.º 21
0
        private void network_OnLoginResponseCallback(bool loginSuccess, bool redirect, string message, string reason, LoginResponseData replyData)
        {
            if (!loginSuccess || redirect)
            {
                return;
            }

            if (!string.IsNullOrWhiteSpace(replyData.MfaHash))
            {
                var settings = instance.GlobalSettings;
                if (settings.ContainsKey("saved_logins") &&
                    settings.ContainsKey("username") &&
                    settings.ContainsKey("login_grid"))
                {
                    string username       = settings["username"];
                    string grid           = settings["login_grid"];
                    var    savedLoginsKey = $"{username}%{grid}";

                    var loginsMap = (OSDMap)settings["saved_logins"];
                    if (loginsMap.ContainsKey(savedLoginsKey))
                    {
                        var sl = (OSDMap)loginsMap[savedLoginsKey];
                        sl["mfa_hash"] = replyData.MfaHash;
                    }
                }
            }
        }
Ejemplo n.º 22
0
        LoginResponseData HandleLogin(string firstName, string lastName, string password, string start, string version, string channel)
        {
            LoginResponseData response = new LoginResponseData();
            Agent             agent;

            UUID agentID = Authentication.Authenticate(firstName, lastName, password);

            if (agentID != UUID.Zero)
            {
                // Authentication successful, create a login instance of this agent
                agent = Accounts.CreateInstance(agentID);

                if (agent != null)
                {
                    // Assign a circuit code and insert the agent into the unassociatedAgents dictionary
                    agent.CircuitCode = UDP.CreateCircuit(agent);

                    agent.TickLastPacketReceived = Environment.TickCount;
                    agent.LastLoginTime          = Utils.DateTimeToUnixTime(DateTime.Now);

                    // Get this machine's IP address
                    IPHostEntry addresses = Dns.GetHostByName(Dns.GetHostName());
                    IPAddress   simIP     = addresses.AddressList.Length > 0 ? addresses.AddressList[0] : IPAddress.Loopback;

                    response.AgentID           = agent.AgentID;
                    response.SecureSessionID   = agent.SecureSessionID;
                    response.SessionID         = agent.SessionID;
                    response.CircuitCode       = agent.CircuitCode;
                    response.AgentAccess       = agent.AccessLevel;
                    response.BuddyList         = null; // FIXME:
                    response.FirstName         = agent.FirstName;
                    response.HomeLookAt        = agent.HomeLookAt;
                    response.HomePosition      = agent.HomePosition;
                    response.HomeRegion        = agent.HomeRegionHandle;
                    response.InventoryRoot     = agent.InventoryRoot;
                    response.InventorySkeleton = null; // FIXME:
                    response.LastName          = agent.LastName;
                    response.LibraryOwner      = agent.InventoryLibraryOwner;
                    response.LibraryRoot       = agent.InventoryLibraryRoot;
                    response.LibrarySkeleton   = null; // FIXME:
                    response.LookAt            = agent.CurrentLookAt;
                    response.Message           = "Welcome to Simian";
                    response.Reason            = String.Empty;

                    uint regionX, regionY;
                    Utils.LongToUInts(agent.CurrentRegionHandle, out regionX, out regionY);
                    response.RegionX = regionX;
                    response.RegionY = regionY;

                    response.SecondsSinceEpoch = DateTime.Now;
                    // FIXME: Actually generate a seed capability
                    response.SeedCapability = String.Format("http://{0}:{1}/seed_caps", simIP, HttpPort);
                    response.SimIP          = simIP;
                    response.SimPort        = (ushort)UDPPort;
                    response.StartLocation  = "last"; // FIXME:
                    response.Success        = true;
                }
                else
                {
                    // Something went wrong creating an agent instance, return a fail response
                    response.AgentID   = agentID;
                    response.FirstName = firstName;
                    response.LastName  = lastName;
                    response.Message   = "Failed to create an account instance";
                    response.Reason    = "account";
                    response.Success   = false;
                }
            }
            else
            {
                // Authentication failed, return a fail response
                response.AgentID   = agentID;
                response.FirstName = firstName;
                response.LastName  = lastName;
                response.Message   = "Authentication failed";
                response.Reason    = "key";
                response.Success   = false;
            }

            return(response);
        }
        public static LoginResponseData Execute(IConfiguration configuration, ApplicationUser user, UserDbContext db, RefreshToken refreshToken = null)
        {
            var options = GetOptions();
            var now     = DateTime.UtcNow;

            var claims = new List <Claim> ()
            {
                // new Claim(JwtRegisteredClaimNames.Sub, user.UserName), // TODO - Check to use it.
                new Claim(JwtRegisteredClaimNames.Email, user.Email),
                new Claim(JwtRegisteredClaimNames.NameId, user.Id),
                new Claim(JwtRegisteredClaimNames.Jti, user.Id.ToString()),
                new Claim(JwtRegisteredClaimNames.Iat, new DateTimeOffset(now).ToUniversalTime().ToUnixTimeSeconds().ToString(), ClaimValueTypes.Integer64)
            };

            //Load the current loggedin userid to jwt //TODO check for security on this.
            UsersRepo ur    = new UsersRepo(configuration);
            Users     _user = ur.GetUserByEmailId(user.Email);

            if (_user != null)
            {
                claims.Add(new Claim("UserId", _user.UserId.ToString()));
            }
            ;

            var userClaims = db.UserClaims.Where(i => i.UserId == user.Id);

            foreach (var userClaim in userClaims)
            {
                claims.Add(new Claim(userClaim.ClaimType, userClaim.ClaimValue));
            }

            //var userRoles = db.UserRoles.Where(i => i.UserId == user.Id); // TODO - This should load from Application DB
            //foreach (var userRole in userRoles)
            //{
            //    var role = db.Roles.Single(i => i.Id == userRole.RoleId);
            //    claims.Add(new Claim(ClaimTypes.Role, role.Name));
            //}

            if (refreshToken == null)
            {
                refreshToken = new RefreshToken()
                {
                    UserId = user.Id,
                    Token  = Guid.NewGuid().ToString("N"),
                };
                db.InsertNew(refreshToken);
            }

            refreshToken.IssuedUtc  = now;
            refreshToken.ExpiresUtc = now.Add(options.Expiration);
            db.SaveChanges();

            var jwt = new JwtSecurityToken(
                issuer: options.Issuer,
                audience: options.Audience,
                claims: claims.ToArray(),
                notBefore: now,
                expires: now.Add(options.Expiration),
                signingCredentials: options.SigningCredentials);
            var encodedJwt = new JwtSecurityTokenHandler().WriteToken(jwt);
            var response   = new LoginResponseData {
                access_token  = encodedJwt,
                refresh_token = refreshToken.Token,
                expires_in    = (int)options.Expiration.TotalSeconds,
                userName      = user.UserName
            };

            return(response);
        }
Ejemplo n.º 24
0
        public async Task <ResponseBase <LoginResponseData> > Login([FromBody] LoginRequestData model)
        {
            try
            {
                await _signInManager.SignOutAsync();

                var             lrd  = new LoginResponseData();
                ApplicationUser user = await _userManager.FindByNameAsync(model.username);

                if (user == null)
                {
                    return(new ResponseBase <LoginResponseData>()
                    {
                        ErrorDetails = "Login details entered is incorrect", Payload = null
                    });
                }

                var result = await _signInManager.PasswordSignInAsync(user, model.password, false, false);

                var _user = await _userRepo.GetByAppUserId(user.Id);

                // BUG: This shouldn't allow login if email still requires verification
                if (result.Succeeded)
                {
                    var identity = await GetClaimsIdentity(model.username, model.password);

                    if (identity == null)
                    {
                        return(new ResponseBase <LoginResponseData>()
                        {
                            ErrorDetails = "Login details entered is incorrect", Payload = null
                        });
                    }

                    var jwt = await Tokens.GenerateJwt(identity, _jwtFactory, model.username, _jwtOptions, new JsonSerializerSettings { Formatting = Formatting.Indented });

                    Token Token = JsonConvert.DeserializeObject <Token>(jwt);
                    _user.Token = Token.auth_Token;

                    if (result.RequiresTwoFactor)
                    {
                        //return RedirectToPage("./SendCode", new { returnUrl, RememberMe });
                    }
                    if (result.IsLockedOut)
                    {
                        return(new ResponseBase <LoginResponseData>()
                        {
                            ErrorDetails = "This you have been LockedOut until " + user.LockoutEnd, Payload = null
                        });
                    }

                    if (_user.User.Activated != true)
                    {
                        return(new ResponseBase <LoginResponseData>()
                        {
                            ErrorDetails = "Your  account has been deactivated contact the admin", Payload = null
                        });
                    }
                }
                else
                {
                    return(new ResponseBase <LoginResponseData>()
                    {
                        ErrorDetails = "Login details entered is incorrect", Payload = null
                    });
                }

                return(new ResponseBase <LoginResponseData>()
                {
                    Payload = _user, IsSuccess = true
                });
            }
            catch (Exception ex)
            {
                return(new ResponseBase <LoginResponseData>()
                {
                    ErrorDetails = Error(), Payload = null
                });
            }
        }
Ejemplo n.º 25
0
 private void LoginSuccess(LoginResponseData lrData)
 {
     SetLoginRequestInProgress(false);
     currentPlayerData = lrData.playerData;
     ActivateLobbyScreen();
 }
Ejemplo n.º 26
0
        void LoginXmlRpcPostHandler(HttpRequestSignature signature, ref HttpListenerContext context)
        {
            string
                firstName = String.Empty,
                lastName  = String.Empty,
                password  = String.Empty,
                start     = String.Empty,
                version   = String.Empty,
                channel   = String.Empty;

            try
            {
                // Parse the incoming XML
                XmlReader reader = XmlReader.Create(context.Request.InputStream);

                reader.ReadStartElement("methodCall");
                {
                    string methodName = reader.ReadElementContentAsString("methodName", String.Empty);

                    if (methodName == "login_to_simulator")
                    {
                        reader.ReadStartElement("params");
                        reader.ReadStartElement("param");
                        reader.ReadStartElement("value");
                        reader.ReadStartElement("struct");
                        {
                            while (reader.Name == "member")
                            {
                                reader.ReadStartElement("member");
                                {
                                    string name = reader.ReadElementContentAsString("name", String.Empty);

                                    reader.ReadStartElement("value");
                                    {
                                        switch (name)
                                        {
                                        case "first":
                                            firstName = reader.ReadElementContentAsString("string", String.Empty);
                                            break;

                                        case "last":
                                            lastName = reader.ReadElementContentAsString("string", String.Empty);
                                            break;

                                        case "passwd":
                                            password = reader.ReadElementContentAsString("string", String.Empty);
                                            break;

                                        case "start":
                                            start = reader.ReadElementContentAsString("string", String.Empty);
                                            break;

                                        case "version":
                                            version = reader.ReadElementContentAsString("string", String.Empty);
                                            break;

                                        case "channel":
                                            channel = reader.ReadElementContentAsString("string", String.Empty);
                                            break;

                                        default:
                                            if (reader.Name == "string")
                                            {
                                                Console.WriteLine(String.Format("Ignore login xml value: name={0}, value={1}", name, reader.ReadInnerXml()));
                                            }
                                            else
                                            {
                                                Console.WriteLine(String.Format("Unknown login xml: name={0}, value={1}", name, reader.ReadInnerXml()));
                                            }
                                            break;
                                        }
                                    }
                                    reader.ReadEndElement();
                                }
                                reader.ReadEndElement();
                            }
                        }
                        reader.ReadEndElement();
                        reader.ReadEndElement();
                        reader.ReadEndElement();
                        reader.ReadEndElement();
                    }
                }
                reader.ReadEndElement();
                reader.Close();

                LoginResponseData responseData = HandleLogin(firstName, lastName, password, start, version, channel);
                if (responseData.Success)
                {
                    responseData.InventorySkeleton = Inventory.CreateInventorySkeleton(responseData.AgentID);
                }
                XmlWriter writer = XmlWriter.Create(context.Response.OutputStream);
                responseData.ToXmlRpc(writer);
                writer.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }