public async Task <string> RegistroCliente(UsuarioRegistroDto usuarioRegistroDto) { try { if (await EmailExiste(usuarioRegistroDto.Email)) { Notificar("Email já cadastrado"); return(string.Empty); } var user = new LocaAppUserModel { UserName = usuarioRegistroDto.Email, Email = usuarioRegistroDto.Email, EmailConfirmed = true, Tipo = TipoUsuario.CLIENTE }; var result = await _userManager.CreateAsync(user, usuarioRegistroDto.Senha); if (!result.Succeeded) { result.Errors?.ToList().ForEach((n) => Notificar($"codErro - {n.Code} | descrErro - {n.Description}")); return(string.Empty); } return(string.Empty); } catch (Exception ex) { //Notificar(ex.Data. Errors.Select(x => x.Description).ToList().ToString()); throw new Exception(ex.Message, ex); } }
private UsuarioJwtDto ObterRespostaToken(string encodedToken, LocaAppUserModel user, IEnumerable <Claim> claims) { return(new UsuarioJwtDto { AccessToken = encodedToken, ExpiresIn = TimeSpan.FromHours(_appSettings.ExpiracaoHoras).TotalSeconds, UsuarioToken = new UsuarioToken { Id = user.Id, Email = user.Email, Claims = claims.Select(c => new UsuarioClaim { Type = c.Type, Value = c.Value }) } }); }
public async Task <string> RegistroOperador(UsuarioRegistroDto usuarioRegistroDto) { try { if (string.IsNullOrEmpty(usuarioRegistroDto.Matricula)) { Notificar("Campo matrícula é obrigatorio para cadastro de operador"); return(string.Empty); } if (await EmailExiste(usuarioRegistroDto.Email)) { Notificar("Email já cadastrado"); return(string.Empty); } var user = new LocaAppUserModel { UserName = usuarioRegistroDto.Email, Email = usuarioRegistroDto.Email, EmailConfirmed = true, Tipo = TipoUsuario.OPERADOR }; var result = await _userManager.CreateAsync(user, usuarioRegistroDto.Senha); if (!result.Succeeded) { Notificar(result.Errors.Select(x => x.Description).ToList().ToString()); return(string.Empty); } return(string.Empty); } catch (Exception ex) { //Notificar(ex.Data. Errors.Select(x => x.Description).ToList().ToString()); throw new Exception(ex.Message, ex); } }
public async Task <ClaimsIdentity> ObterClaimsUsuario(ICollection <Claim> claims, LocaAppUserModel user) { var userRoles = await _userManager.GetRolesAsync(user); claims.Add(new Claim(JwtRegisteredClaimNames.Sub, user.Id)); claims.Add(new Claim(JwtRegisteredClaimNames.Email, user.Email)); claims.Add(new Claim("Tipo", user.Tipo.ToString())); //pega qual o tipo do usuario claims.Add(new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())); claims.Add(new Claim(JwtRegisteredClaimNames.Nbf, ToUnixEpochDate(DateTime.UtcNow).ToString())); claims.Add(new Claim(JwtRegisteredClaimNames.Iat, ToUnixEpochDate(DateTime.UtcNow).ToString(), ClaimValueTypes.Integer64)); foreach (var userRole in userRoles) { claims.Add(new Claim("role", userRole)); } var identityClaims = new ClaimsIdentity(); identityClaims.AddClaims(claims); return(identityClaims); }