Romeo
Romeo

Reputation: 1185

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

We need to allow our Flutter application to save a property in the user_metadata when the application starts. As I understand this is a task to be done with the Management API and in order for the Flutter application to be able to write in the user_metadata the client has to request a Management API access token.

I found no information on how to request this token, the closest thing is this page in the documentation that has no example and no explanation on how to retrieve this token: https://auth0.com/docs/secure/tokens/access-tokens/get-management-api-tokens-for-single-page-applications

Can anyone provide an example on how to request this token from a Flutter app? Even a generic CURL request would be helpful to understand what endpoint to call with which parameters.

Error received when trying to access the Management API to update the user_metadata:

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

Upvotes: 1

Views: 904

Answers (1)

Akber Iqbal
Akber Iqbal

Reputation: 15041

2 steps are needed:

  1. Get the authentication token for management API:

sample curl:

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. call the management api to update app_metadata

sample curl:

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": "[email protected]", "user_metadata": {"hobby": "surfing"}, "app_metadata": {"plan": "full"}}'

Edit: Patch request with userID

Upvotes: 1

Related Questions