示例#1
0
        //кортеж item1-основной токен item2-рефлеш
        public async static Task <Tuple <string, string> > Refresh(ApplicationDbContext db, string userId, string refreshToken)
        {
            string hashToken = AuthJWT.GetHashRefreshToken(refreshToken);// refreshToken.GetHashCode();
            var    user      = await db.Users.FirstOrDefaultAsync(x1 => x1.Id == userId && x1.RefreshTokenHash == hashToken);

            if (user == null)
            {
                return(null);
            }
            string token = AuthJWT.GenerateRefreshToken();
            await user.SetRefreshToken(db, token);

            return(new Tuple <string, string>(AuthJWT.GenerateMainToken(AuthJWT.GetIdentity(user)), token));
        }
示例#2
0
        public async static Task <bool> DeleteRefreshTokenFromDb(ApplicationDbContext db, string userId, string refreshToken)
        {
            string hashToken = AuthJWT.GetHashRefreshToken(refreshToken);//refreshToken.GetHashCode();
            var    user      = await db.Users.FirstOrDefaultAsync(x1 => x1.Id == userId && x1.RefreshTokenHash == hashToken);

            if (user == null)
            {
                return(false);
            }
            user.RefreshTokenHash = null;
            await db.SaveChangesAsync();

            return(true);
        }