public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { try { IServiceUser serviceUser = _container.Resolve <IServiceUser>(); AuthenticateUserRequest request = new AuthenticateUserRequest(); request.Email = context.UserName; request.Senha = context.Password; AuthenticateUserResponse response = serviceUser.AuthenticateUser(request); if (serviceUser.IsInvalid()) { if (response == null) { context.SetError("invalid_grant", "Preencha um e-mail válido e uma senha com pelo menos 6 caracteres."); return; } } serviceUser.ClearNotifications(); if (response == null) { context.SetError("invalid_grant", "Usuário não encontrado!"); return; } var identity = new ClaimsIdentity(context.Options.AuthenticationType); //Definindo as Claims identity.AddClaim(new Claim("User", 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); return; } }
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { try { IServiceUser serviceUser = _container.Resolve <IServiceUser>(); AuthUserRequest request = new AuthUserRequest(); request.Email = context.UserName; request.Password = context.Password; AuthUserResponse response = serviceUser.AuthUser(request); if (serviceUser.IsInvalid()) { if (response == null) { context.SetError("invalid_grant", Message.X0_IsInvalid.ToFormat(Message.Email + Message.Or + Message.Password)); return; } } serviceUser.ClearNotifications(); if (response == null) { context.SetError("invalid_grant", Message.DataNotFound); return; } var identity = new ClaimsIdentity(context.Options.AuthenticationType); //Definindo as Claims identity.AddClaim(new Claim("GTUser", 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); return; } }
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { try { //context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" }); IServiceUser serviceUser = _container.Resolve <IServiceUser>(); AuthenticateUserRequest request = new AuthenticateUserRequest(); request.Email = context.UserName; request.Password = context.Password; AuthenticateUserResponse response = serviceUser.AuthenticateUser(request); if (response == null) { context.SetError("invalid_grant", "Usuário inválido"); return; } serviceUser.ClearNotifications(); var identity = new ClaimsIdentity(context.Options.AuthenticationType); identity.AddClaim(new Claim("Usuário", 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); return; } }