// This methods verifies an authToken with the WebServiceAPI to confirm user identity
        private async Task <string> HandlePlayerAuthentication(IHttpClientFactory httpFactory, string authToken)
        {
            var request = new HttpRequestMessage(HttpMethod.Get, _config["AppSettings:AuthApiEndpoint"]);

            request.Headers.Add("Authorization", $"Bearer {authToken}");
            request.Headers.Add("User-Agent", "DarkeningAge-GameServer");

            using (HttpClient client = httpFactory.CreateClient())
                using (HttpResponseMessage response = await client.SendAsync(request))
                {
                    if (response.IsSuccessStatusCode)
                    {
                        using (HttpContent content = response.Content)
                        {
                            AuthDataResponse data = JsonConvert.DeserializeObject <AuthDataResponse>(
                                await content.ReadAsStringAsync());
                            return(data.username);
                        }
                    }
                    else
                    {
                        return(null);
                    }
                }
        }
Beispiel #2
0
        public AuthDataResponse Passthrough(string g_user_id)
        {
            var user = _userController.Select("where g_user_id='@0' or u_logon_name ='@0'", g_user_id)?.FirstOrDefault();

            if (user == null)
            {
                return(new AuthDataResponse
                {
                    Success = false,
                    Message = "Invalid user identifier.",
                });
            }

            var roles = _userRolesController.Select("where UserID=@0", user.g_user_id).ToList();

            if (!roles.Any())
            {
                user.Roles    = new Role[1];
                user.Roles[0] = new Role {
                    RoleID = 1, RoleName = "Users"
                };
            }
            else
            {
                user.Roles = _roleController.Select($"where RoleID in ({string.Join(",", roles.Select(r => r.RoleId).ToArray())})").ToArray();
            }

            var result = new AuthDataResponse(user)
            {
                Success = true
            };

            result.Message = result.AuthResult.User.PwdExpired ? "Your password has expired." : ArizonaConstants.SUCCESS;

            return(result);
        }
Beispiel #3
0
        public AuthDataResponse Login(string username, string pwd)
        {
            var user = _userController.Select("where u_logon_name=@0 and u_user_security_password = @1", username, pwd)?.FirstOrDefault();

            if (user == null)
            {
                return(new AuthDataResponse
                {
                    Success = false,
                    Message = "Invalid username or password.",
                });
            }

            var roles = _userRolesController.Select("where UserID=@0", user.g_user_id).ToList();

            if (!roles.Any())
            {
                user.Roles    = new Role[1];
                user.Roles[0] = new Role {
                    RoleID = 1, RoleName = "Users"
                };
            }
            else
            {
                user.Roles = _roleController.Select($"where RoleID in ({string.Join(",", roles.Select(r => r.RoleId).ToArray())})").ToArray();
            }

            var result = new AuthDataResponse(user)
            {
                Success = true
            };

            result.Message = result.AuthResult.User.PwdExpired ? "Your password has expired." : BlueConstants.SUCCESS;

            return(result);
        }