Resource Owner Password Credentials

Resource Owner Password Credentials is a legacy OAuth grant where the client collects a user's username and password and exchanges them directly for tokens.

Prerequisites

  • A trusted first-party client
  • Explicit server-side grant enablement
  • A clear migration plan toward Authorization Code + PKCE

When to Use

Use this flow only for legacy or internal scenarios where redirect-based login is not possible. New browser, mobile, and public-client integrations should use Authorization Code Flow with PKCE.

Request Shape

curl -X POST https://localhost:5001/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=password&client_id=legacy-client&username=user@example.com&password=replace-with-real-password"

Common Pitfalls

  • Treating password grant as the default integration option.
  • Using password grant from browser-based applications.
  • Forgetting that this flow gives the client direct access to user credentials.

Troubleshooting

  • If the request is rejected, verify that the client is allowed to use this grant.
  • If discovery metadata does not advertise this grant, treat that as intentional guidance for new integrations.