code: def encode_access_token(identity, secret, algorithm, expires_delta, fresh,
                          user_claims, csrf, identity_claim_key, user_claims_key,
                          json_encoder=None):
      
  
      if isinstance(fresh, datetime.timedelta):
          now = datetime.datetime.utcnow()
          fresh = timegm((now + fresh).utctimetuple())
  
      token_data = {
          identity_claim_key: identity,
          'fresh': fresh,
          'type': 'access',
      }
  
      # Don't add extra data to the token if user_claims is empty.
      if user_claims:
          token_data[user_claims_key] = user_claims
  
      if csrf:
          token_data['csrf'] = _create_csrf_token()
      return _encode_jwt(token_data, expires_delta, secret, algorithm,
                         json_encoder=json_encoder)
docs: Creates a new encoded (utf-8) access token.
  
      :param identity: Identifier for who this token is for (ex, username). This
                       data must be json serializable
      :param secret: Secret key to encode the JWT with
      :param algorithm: Which algorithm to encode this JWT with
      :param expires_delta: How far in the future this token should expire
                            (set to False to disable expiration)
      :type expires_delta: datetime.timedelta or False
      :param fresh: If this should be a 'fresh' token or not. If a
                    datetime.timedelta is given this will indicate how long this
                    token will remain fresh.
      :param user_claims: Custom claims to include in this token. This data must
                          be json serializable
      :param csrf: Whether to include a csrf double submit claim in this token
                   (boolean)
      :param identity_claim_key: Which key should be used to store the identity
      :param user_claims_key: Which key should be used to store the user claims
      :return: Encoded access token