Auth0 从 Flutter 应用请求并使用管理 API 令牌

Auth0 Request and use a Management API token from a Flutter App

我们需要让我们的 Flutter 应用程序在应用程序启动时在 user_metadata 中保存一个 属性。 据我了解,这是一项需要管理 API 完成的任务,为了使 Flutter 应用程序能够写入 user_metadata,客户端必须请求管理 API 访问权限令牌。

我没有找到关于如何请求这个令牌的信息,最接近的是文档中的这个页面,没有示例也没有关于如何检索这个令牌的解释: https://auth0.com/docs/secure/tokens/access-tokens/get-management-api-tokens-for-single-page-applications

任何人都可以提供有关如何从 Flutter 应用程序请求此令牌的示例吗? 即使是通用的 CURL 请求也有助于理解使用哪些参数调用哪个端点。

尝试访问管理 API 以更新 user_metadata 时收到错误:

body{
 "statusCode":400,
 "error":"Bad Request",
 "message":"Bad HTTP authentication header format",
 "errorCode":"Bearer"
}

需要 2 个步骤:

  1. 获取身份验证token for management API:

示例卷曲:

curl --location --request POST "https://YOUR_AUTH0_DOMAIN/oauth/token" \
--header "content-type: application/json" \
--data-raw "{
    \"grant_type\": \"client_credentials\",
    \"audience\": \"https://YOUR_AUTH0_DOMAIN/api/v2/\",
    \"client_id\": \"YOUR_AUTH0_APPLICATION_CLIENT_ID\",
    \"client_secret\": \"YOUR_AUTH0_APPLICATION_CLIENT_SECRET\"
}"
  1. 调用 management api to update app_metadata

示例卷曲:

curl --request PATCH \
  --url 'https://YOUR_AUTH0_DOMAIN/api/v2/users/USER_ID' \
  --header 'authorization: Bearer TOKEN_FROM_STEP_1' \
  --header 'content-type: application/json' \
  --data '{"email": "whatever@example.com", "user_metadata": {"hobby": "surfing"}, "app_metadata": {"plan": "full"}}'

编辑:带有用户 ID 的补丁请求