Why Device Flow?
Traditional OAuth (Browser-based)
Problem: Browser redirect complex for CLI tools.Device Flow (CLI-friendly)
Better: CLI asks user to visit URL, handles polling.How Device Flow Works
Device Flow Endpoints
Step 1: Request Device Code
Step 2: User Authorizes
User visits verification URL:Step 3: Poll for Token
CLI polls until user approves (or times out):CLI Example: Noorle Login
Behind the Scenes
Token Storage
Tokens should be stored securely:Linux/Mac
Windows
Docker/Container
Token Refresh
Access tokens expire (default 1 hour). Use refresh token to get new access token:Using Tokens in CLI
Once authenticated, CLI sends token automatically:Logout
Remove tokens:Scopes
Request specific permissions via scope:read- View resources (list, get)execute- Run agents, call toolsmanage- Create, update resourcesadmin- Delete, full controloffline_access- Request refresh token
Security Considerations
1. User Code
User code (e.g., XYZ-789) is short and memorable. Users must carefully enter it. Risks:2. Device Code
Device code is the secret. Keep it private:3. Token Storage
Access token on disk is sensitive:4. Revocation
Users can revoke tokens anytime:Troubleshooting
| Problem | Solution |
|---|---|
| ”authorization_pending” (forever) | User didn’t approve. Check verification URL was visited. |
| ”invalid_request” | Check client_id is correct. Verify device code format. |
| ”Token expired” | Refresh token. Use refresh_token endpoint. |
| Code expires in 30 min | User took too long. Start over with noorle login. |
| Can’t find stored token | Check ~/.noorle/credentials.json exists. Verify permissions. |
Next: Learn about JWT Tokens for stateless authentication.