Example #1
0
        public async Task <AccessTokenModel> AuthUser(EntityUser user, EntityUserSocialType provider)
        {
            var identity = await GetUserIdentity(user, provider);

            var now = DateTime.UtcNow;
            var jwt = new JwtSecurityToken(
                issuer: AuthOptions.ISSUER,
                audience: AuthOptions.AUDIENCE,
                claims: identity.Claims,
                expires: now.Add(TimeSpan.FromMinutes(AuthOptions.LIFETIME)),
                signingCredentials: new SigningCredentials(AuthOptions.GetKey(), SecurityAlgorithms.HmacSha256));

            var encodedJwt = new JwtSecurityTokenHandler().WriteToken(jwt);

            return(new AccessTokenModel
            {
                Token = encodedJwt,
                Email = user.Email,
                Expires = jwt.ValidTo.Subtract(now).Ticks,
                FirstName = user.FirstName,
                LastName = user.LastName,
                OAuthProvider = provider.ToString(),
                ProfileImageUrl = user.PictureUrl
            });
        }
Example #2
0
        protected async Task <ClaimsIdentity> GetUserIdentity(EntityUser user, EntityUserSocialType provider)
        {
            var list = new List <Claim>();

            if (await _userStore.IsInRoleAsync(user, "user"))
            {
                list.Add(new Claim(ClaimsIdentity.DefaultRoleClaimType, "user"));
            }

            if (await _userStore.IsInRoleAsync(user, "admin"))
            {
                list.Add(new Claim(ClaimsIdentity.DefaultRoleClaimType, "admin"));
            }

            list.Add(new Claim(ClaimsIdentity.DefaultNameClaimType, user.Email));
            list.Add(new Claim("Provider", provider.ToString()));

            return(new ClaimsIdentity(list, "Token", ClaimsIdentity.DefaultNameClaimType, ClaimsIdentity.DefaultRoleClaimType));
        }