Exemplo n.º 1
0
        public SignInUserResponse SignInUser(SignInUserRequest request)
        {
            SignInUserResponse response = new SignInUserResponse();

            GimAuthenticateRequest gimAuthenticateRequest = new GimAuthenticateRequest {
                Email                    = request.Login,
                Password                 = request.Password,
                ApplicationKey           = this._gimSettings.Value.ApplicationKey,
                TokenExpirationInMinutes = this._gimSettings.Value.TokenExpirationInMinutes
            };

            // Autenticação realizada pelo GIM.
            GimAuthenticateResponse gimAuthenticateResponse = new GimConnector(this._gimSettings).Authenticate(gimAuthenticateRequest);

            if (gimAuthenticateResponse.Success == false)
            {
                foreach (GimReport report in gimAuthenticateResponse.OperationReport)
                {
                    response.OperationReport.Add(new Report {
                        Field = report.Field, Message = report.Message
                    });
                }

                response.StatusCode = gimAuthenticateResponse.StatusCode;
                return(response);
            }

            response.AuthenticationToken      = gimAuthenticateResponse.AuthenticationToken;
            response.TokenExpirationInMinutes = gimAuthenticateResponse.TokenExpirationInMinutes;
            response.UserKey    = gimAuthenticateResponse.UserKey;
            response.Name       = gimAuthenticateResponse.Name;
            response.Success    = gimAuthenticateResponse.Success;
            response.StatusCode = gimAuthenticateResponse.StatusCode;
            return(response);
        }
Exemplo n.º 2
0
        private SignInUserResponse ObterRespostaToken(string encodedToken, IdentityUser user, IEnumerable <Claim> claims)
        {
            var response = new SignInUserResponse
            {
                AccessToken = encodedToken,
                ExpiresIn   = TimeSpan.FromHours(_appSettings.ExpirationHours).TotalSeconds,
                UserToken   = new UserToken
                {
                    Id     = user.Id,
                    Email  = user.Email,
                    Claims = claims.Select(x => new UserClaim {
                        Type = x.Type, Value = x.Value
                    })
                }
            };

            return(response);
        }
Exemplo n.º 3
0
    public IEnumerator SignIn()
    {
        Debug.Log("hello");
        var body = new SignInUserRequest
        {
            name = PlayerInfoHolder.Name
        };

        var json = JsonUtility.ToJson(body);

        using (var request = new UnityWebRequest("http://194.32.79.63:8000/api/Player/sign-in", "POST"))
        {
            byte[] bodyRaw = Encoding.UTF8.GetBytes(json);
            request.uploadHandler   = new UploadHandlerRaw(bodyRaw);
            request.downloadHandler = new DownloadHandlerBuffer();
            request.SetRequestHeader("Content-Type", "application/json");
            yield return(request.Send());

            while (!request.isDone)
            {
                yield return(null);
            }

            byte[] result    = request.downloadHandler.data;
            string eventJSON = System.Text.Encoding.Default.GetString(result);
            Debug.Log(eventJSON);

            ApiResponse <SignInUserResponse> info = JsonUtility.FromJson <ApiResponse <SignInUserResponse> >(eventJSON);
            Debug.Log($"Data: {info.data} Result: {info.result} Errors: {info.errors}");

            if (info.errors.Length == 0)
            {
                SignInUserResponse evn = info.data;
                PlayerInfoHolder.Token = "Bearer " + evn.token;
                Debug.Log($"Scores: {evn.scores} Reward: {evn.reward} Token: {evn.token}");
            }
            else
            {
                Debug.Log($"Errors: {info.errors[0]}");
            }
        }
    }
        private async Task SignIn(SignInUserResponse response)
        {
            var token = GetFormatedToken(response.AccessToken);

            var claims = new List <Claim>();

            claims.Add(new Claim("JWT", response.AccessToken));
            claims.AddRange(token.Claims);

            var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);

            var authProperties = new AuthenticationProperties
            {
                ExpiresUtc   = DateTimeOffset.UtcNow.AddMinutes(60),
                IsPersistent = true
            };
            await HttpContext.SignInAsync(
                CookieAuthenticationDefaults.AuthenticationScheme,
                new ClaimsPrincipal(claimsIdentity),
                authProperties);
        }
Exemplo n.º 5
0
        public IActionResult SignInUser([FromBody] SignInModel model)
        {
            if (ModelState.IsValid == false)
            {
                return(BadRequest(ModelState));
            }

            SignInUserRequest serviceRequest = new SignInUserRequest {
                Login = model.Login, Password = model.Password
            };

            SignInUserResponse serviceResponse = _userService.SignInUser(serviceRequest);

            SignInUserApiResponse apiResponse = new SignInUserApiResponse();

            if (serviceResponse.Success == false)
            {
                foreach (Report report in serviceResponse.OperationReport)
                {
                    apiResponse.OperationReport.Add(new ApiReport {
                        Field = report.Field, Message = report.Message
                    });
                }

                return(Ok(apiResponse));
            }

            // TODO: Melhorar passagem de dados com AutoMapper ou outro.

            // TODO: remover valores nulos da resposta quando retornar false.

            apiResponse.AuthenticationToken      = serviceResponse.AuthenticationToken;
            apiResponse.TokenExpirationInMinutes = serviceResponse.TokenExpirationInMinutes;
            apiResponse.UserKey = serviceResponse.UserKey;
            apiResponse.Name    = serviceResponse.Name;
            apiResponse.Success = true;

            return(Ok(apiResponse));
        }