How credentials are checked
One exchange at a time. Read what changes, then explain it in your own words before moving on.
- Meet the components
- Follow the steps
- Compare an example
- Check your understanding
How credentials are checked
See the difference between storage, proof, validation and authorization.
A readable token is not a trusted token; validate claims before authorization.
How to use this example
Select Next step to read at your own pace, or Animate step to watch one exchange. Nothing advances until you choose.
What it means
Everyday example
State in this scenario
Inspect components & read every step
- Client
A program that asks another system for information or an action.
Example: A shopping app requests a list of products from a service.
- Verifier
The system checking whether the presented proof is acceptable.
Example: A sign-in service checks a submitted password against its stored password verifier.
- Credential store
Storage for authentication-related records. It should not hold passwords as readable text.
Example: A service stores salted password hashes and account information.
- Resource
The information or action someone wants permission to use.
Example: A private document or an account setting is a resource.
JWT validation
A readable token is not a trusted token; validate claims before authorization.
- Client Verifier: Signed token. The request includes a token, not its signing key.
- Credential store Verifier: Trusted public key. Resolve trusted verification material; this may be cached.
- Verifier Resource: Validated claims. Check issuer, audience and lifetime, then evaluate permissions.
- Resource Client: Allowed response. Only an authorized operation returns protected data.
Server session
An opaque cookie identifies server-side session state.
- Client Verifier: Session cookie. The browser sends an opaque session identifier.
- Verifier Credential store: Lookup session. The service reads the associated state.
- Credential store Verifier: User + expiry. Expiry and revocation affect the result.
- Verifier Resource: Identity context. Resource authorization is still required.
Password hashing
Use a password KDF such as Argon2id with a unique salt and suitable cost.
- Client Verifier: Password over TLS. The verifier receives the candidate in a protected connection.
- Credential store Verifier: Salt + KDF settings. Retrieve the stored salt, parameters and verifier.
- Verifier Credential store: Compare verifier. Compare computed and stored verifier safely; do not store plaintext.
- Verifier Client: Decision. Apply rate limits and additional factors where required.
Refresh token
Renewal is a separate credential flow, not an extension of an expired access token.
- Client Resource: Expired token. The resource rejects an expired access token.
- Client Verifier: Refresh credential. The client presents its refresh credential to the authorization server.
- Verifier Client: New access token. Issue a new token only after the refresh policy succeeds.
- Client Resource: Retry with token. The resource validates the new token and requested permissions.
API key
An API key is a credential with scope, expiry and revocation policy—not necessarily a user identity.
- Client Verifier: API key. The client presents a secret credential over TLS.
- Verifier Credential store: Lookup policy. Check status, expiry and configured permissions.
- Verifier Resource: Scoped caller. Authorize this operation under the credential’s policy.
Authorization failure
Authentication can succeed while the requested object remains forbidden.
- Client Verifier: Valid credentials. The verifier establishes who the caller is.
- Verifier Resource: Other user’s object. The application checks the target owner and action.
- Resource Client: 403 · denied. Protected content is not returned.
Fictional teaching trace. One moving dot represents an exchange, not a measured network capture.