docs: def parse_token(self, token):
          """
          Obtain a user from a signed token.
  
          """
          try:
              data = self.unsign(token)
          except signing.SignatureExpired:
              logger.debug("Expired token: %s", token)
              return
          except signing.BadSignature:
              logger.debug("Bad token: %s", token)
              return
          except Exception:
              logger.exception(
                  "Valid signature but unexpected token - if you changed "
                  "django-sesame settings, you must regenerate tokens")
              return
          user_pk, data = self.packer.unpack_pk(data)
          user = self.get_user(user_pk)
          if user is None:
              logger.debug("Unknown token: %s", token)
              return
          h = crypto.pbkdf2(
              self.get_revocation_key(user),
              self.salt,
              self.iterations,
              digest=self.digest,
          )
          if not crypto.constant_time_compare(data, h):
              logger.debug("Invalid token: %s", token)
              return
          logger.debug("Valid token for user %s: %s", user, token)
          return user