コード例 #1
0
        public async Task <bool> Verify(VerifyTokenRequestModel model)
        {
            var k = await _privateKeyStore.GetAsync();

            var t = Hex.Decode(model.tAsHex);
            var W = _ecParameters.Curve.DecodePoint(Hex.Decode(model.WAsHex));

            var isValid = await _tokenVerifier.VerifyTokenAsync(k, _ecParameters.Curve, t, W);

            return(isValid);
        }
        public async Task <bool> IsTokenValid(string anonymousToken)
        {
            var parts          = anonymousToken.Split(".");
            var submittedPoint = _anonymousTokenKeySource.ECParameters.Curve.DecodePoint(Convert.FromBase64String(parts[0]));
            var tokenSeed      = Convert.FromBase64String(parts[1]);
            var keyId          = parts[2];

            var privateKey = _anonymousTokenKeySource.GetPrivateKey(keyId);

            var isValid = await _tokenVerifier.VerifyTokenAsync(privateKey, _anonymousTokenKeySource.ECParameters.Curve, tokenSeed, submittedPoint);

            return(isValid);
        }
コード例 #3
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);
        }