def METHOD_NAME(self, request, app, client):
    """We need to gather the info from the apple specific login"""
    apple_session = get_apple_session(request)
    # Exchange `code`
    code = get_request_param(request, "code")
    pkce_code_verifier = request.session.pop("pkce_code_verifier", None)
    access_token_data = client.get_access_token(
        code, pkce_code_verifier=pkce_code_verifier
    )
    id_token = access_token_data.get("id_token", None)
    # In case of missing id_token in access_token_data
    if id_token is None:
        id_token = apple_session.store.get("id_token")
    return {
        **access_token_data,
        **self.get_user_scope_data(request),
        "id_token": id_token,
    }