Application Types
BlueNexus uses OAuth 2.1, an open standard for secure authorization. It allows users to grant your app limited access to their resources without sharing credentials.
Here’s how it works in general:
User Authentication: The user is redirected to the authorization server to log in.
Authorization Grant: The user approves (or denies) your app’s access request.
Token Exchange: Your app exchanges the authorization grant for an access token.
API Access: Your app uses the access token to make authenticated API calls.
OAuth Application Types
All applications will use the Authorization Code Flow with PKCE (standard OAuth 2.1). The main difference is whether the application can securely store a client secret.
SPA (React, Vue)
Public
❌
Browser app
Mobile (iOS, Android)
Public
❌
Native app
Desktop (Electron, CLI)
Public
❌
Local app
Web Server
Confidential
✅
Node.js, Flask
M2M / Service
Confidential
✅
Worker, API client
Public clients
Public clients cannot safely store secrets (like a Client Secret). Their code runs in environments where users could inspect or modify it (e.g., browsers or mobile devices). They use PKCE to securely authenticate without a client secret.
These clients should not get a client secret and should never bundle a secret with their code/binaries.
Confidential Clients
Confidential clients can securely store credentials, and are therefore provided a Client Secret. They typically run on secure servers or within trusted environments.
Note that, as per OAuth specification, the secret is mandatory for confidential clients and will be required during the token exchange process.
Web Server Application
Examples: Node.js, Python Flask, Ruby on Rails, Java Spring apps
Web server apps handle OAuth flows on the backend, keeping secrets safe. They use the Authorization Code Flow with PKCE and store tokens securely on the server.
Last updated

