Exemplo n.º 1
0
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            try
            {
                IServicePlayer servicePlayer = _container.Resolve <IServicePlayer>();

                AuthenticatePlayerRequest request = new AuthenticatePlayerRequest();
                request.Email    = context.UserName;
                request.Password = context.Password;
                AuthenticatePlayerResponse response = servicePlayer.AuthenticatePlayer(request);

                if (servicePlayer.IsInvalid())
                {
                    if (response == null)
                    {
                        context.SetError("invalid_grant", "Preencha um e-mail válido e uma senha com pelo menos 6 caracteres.");
                        return;
                    }
                }
                servicePlayer.ClearNotifications();
                if (response == null)
                {
                    context.SetError("invalid_grant", "Jogador não encontrado!");
                    return;
                }
                var identity = new ClaimsIdentity(context.Options.AuthenticationType);
                //Definindo as Claims
                identity.AddClaim(new Claim("Player", JsonConvert.SerializeObject(response)));
                var principal = new GenericPrincipal(identity, new string[] { });
                Thread.CurrentPrincipal = principal;
                context.Validated(identity);
            }
            catch (Exception ex)
            {
                context.SetError("invalid_grant", ex.Message);
            }
        }
Exemplo n.º 2
0
        public Task <AuthenticatePlayerResponse> AuthenticatePlayer([FromBody] AuthenticatePlayerRequest request)
        {
            AuthenticatePlayerResponse response = null;
            var result = GetPlayer <AuthenticatePlayerResponse>(request.PlayerToken);

            if (result.Item2 != null)
            {
                response = result.Item2;
            }
            else
            {
                response = new AuthenticatePlayerResponse()
                {
                    CurrencyCode = result.Item1.CurrencyCode,
                    LanguageCode = result.Item1.LanguageCode,
                    PlayerLimit  = result.Item1.PlayerLimit,
                    Email        = result.Item1.Email,
                    NickName     = $"{result.Item1.Name} {result.Item1.Surname}",
                    PlayerId     = result.Item1.Id,
                    Code         = BrandApiErrorCode.Ok
                }
            };
            return(Task.FromResult(response));
        }