SSO Integration Guide
Connect your application to WamISSO using OAuth 2.0 Authorization Code flow.
Base URL: https://wamisso.rendovations.com
Register as a developer at https://wamisso.rendovations.com/developer/login, get admin approval, then create an OAuth client in the developer portal to obtain a
Register as a developer at https://wamisso.rendovations.com/developer/login, get admin approval, then create an OAuth client in the developer portal to obtain a
client_id and client_secret.
See the developer registration guide for step-by-step instructions.
OAuth 2.0 flow
Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /oauth/authorize | Start login — redirect the user here |
| POST | /oauth/token | Exchange code or refresh token |
| GET | /api/user | User profile (requires Bearer token) |
| POST | /api/sso/logout | Revoke access token (requires Bearer token) |
| GET | /.well-known/openid-configuration | OpenID discovery metadata |
| GET | /.well-known/oauth-authorization-server | OAuth metadata |
Authorization request
Redirect the browser to:
https://wamisso.rendovations.com/oauth/authorize
?client_id={CLIENT_ID}
&redirect_uri={REDIRECT_URI}
&response_type=code
&scope=openid profile email
&state={RANDOM_STATE}
Token exchange
curl -X POST https://wamisso.rendovations.com/oauth/token \
-H "Accept: application/json" \
-d "grant_type=authorization_code" \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_CLIENT_SECRET" \
-d "redirect_uri=http://localhost:3000/callback" \
-d "code=AUTH_CODE_FROM_CALLBACK"
User profile response
{
"sub": "1",
"name": "Juan Dela Cruz",
"email": "user@wamisso.gov.ph",
"email_verified": true
}
Scopes
| Scope | Description |
|---|---|
openid | Identity verification |
profile | Name and basic profile |
email | Email address |
Logout (revoke token)
When a user signs out of your application, revoke the OAuth access token so it cannot be reused:
curl -X POST https://wamisso.rendovations.com/api/sso/logout \
-H "Accept: application/json" \
-H "Authorization: Bearer ACCESS_TOKEN"
{
"message": "Successfully logged out",
"status": "logged_out"
}
Always clear your local session or stored tokens after calling logout, even if the API call fails.
Framework guides
- Django — Python web framework
- Laravel — server-side OAuth with sessions
- Laravel + React Inertia — Laravel backend with React frontend
- Vue + Laravel API — SPA frontend with Laravel API and Sanctum
Language guides
- Developer registration — register, get approved, create OAuth clients
- PHP integration — Laravel or plain PHP
- Python integration — Flask / requests
- JavaScript integration — Node.js / Express
Production: Use HTTPS, store secrets securely, and register exact
redirect_uri values for each client.