Beispiel #1
0
        public async Task <Response <UserDto> > SetUserClaims(string uid)
        {
            var response = new Response <UserDto>();

            try
            {
                var claimsDto = await _tokenVerifier.VerifyTokenAsync(uid);

                if (claimsDto == null)
                {
                    return(response);
                }

                var userExist = await _authContext.Users.FirstOrDefaultAsync(x =>
                                                                             x.GoogleId == claimsDto.Claims["user_id"].ToString());

                if (userExist == null)
                {
                    var user = await CreateNewUser(claimsDto);

                    var claims = new Dictionary <string, object>
                    {
                        { "Id", user.Id },
                        { "User", true }
                    };
                    await _tokenVerifier.AddClaims(claimsDto.Subject, claims);

                    await SendNewProfileCreated(user);

                    response.Data    = _mapper.Map <User, UserDto>(user);
                    response.Success = true;
                    _logger.LogInformation("Set user claims of user: "******"Claims could not be added to user!");
                throw;
            }
            catch (ArgumentNullException)
            {
                _logger.LogError("Claims could not be added to user!");
                throw;
            }

            return(response);
        }