Example #1
0
        public async Task <JsonWebToken> Create(ILAUser user, UserManager <ILAUser> userManager)
        {
            var nowUtc  = DateTime.UtcNow;
            var expires = nowUtc.AddMinutes(_options.ExpiryMinutes);
            var exp     = ((DateTimeOffset)expires).ToUnixTimeSeconds();
            var iat     = ((DateTimeOffset)nowUtc).ToUnixTimeSeconds();
            var guid    = Guid.NewGuid().ToString();

            var payload = new JwtPayload
            {
                { JwtRegisteredClaimNames.Sub, user.Id },
                { JwtRegisteredClaimNames.Iss, _options.Issuer },
                { JwtRegisteredClaimNames.Iat, iat },
                { JwtRegisteredClaimNames.Exp, exp },
                { JwtRegisteredClaimNames.Jti, guid }
            };

            await _tokenManager.ActivateAsync(guid);

            return(new JsonWebToken
            {
                AccessToken = _jwtSecurityTokenHandler.WriteToken(new JwtSecurityToken(_jwtHeader, payload)),
                Expires = exp
            });
        }