示例#1
0
        public async Task <bool> InsertFingerprint(string id, ProviderFingerprint fingerpeint)
        {
            var query = _getIdQuery(id)
                        .UpdateSet(x => x.UpdateTime, DateTime.UtcNow)
                        .UpdateAddToSet(x => x.Fingerprints, fingerpeint);

            await UpdateByQuery(query);

            return(true);
        }
        protected ClaimsIdentity _generateClaims(Provider provider, ProviderFingerprint fingerprint)
        {
            var list = new List <Claim>
            {
                new Claim(ProviderTokenOptions.PROVIDER_ID_NAME, provider.Id),
                new Claim(ProviderTokenOptions.PROVIDER_OWNER_ID_NAME, provider.Owner.Id),
                new Claim(ProviderTokenOptions.PROVIDER_DOMAIN_NAME, fingerprint.Domain),
            };

            return(new ClaimsIdentity(list));
        }
        protected string _generateFingerprint(Provider provider, ProviderFingerprint fingerprint)
        {
            var now = DateTime.UtcNow;

            var jwt = new JwtSecurityToken(
                issuer: AuthOptions.ISSUER,
                audience: fingerprint.Domain,
                notBefore: now,
                claims: _generateClaims(provider, fingerprint).Claims,
                signingCredentials: new SigningCredentials(AuthOptions.GetSymmetricSecurityKey(), SecurityAlgorithms.HmacSha256));

            return(new JwtSecurityTokenHandler().WriteToken(jwt));
        }