The OBP-OIDC Provider login page includes a "Forgot password?" link that sends users to the OBP Portal's /forgot-password page.
The forgot password link is constructed from the OBP_PORTAL_BASE_URL environment variable (defaulting to http://localhost:5174) with /forgot-password appended.
OBP_PORTAL_BASE_URL |
Forgot Password Link |
|---|---|
| (not set) | http://localhost:5174/forgot-password |
https://portal.example.com |
https://portal.example.com/forgot-password |
https://api.bank.com:8080 |
https://api.bank.com:8080/forgot-password |
Set OBP_PORTAL_BASE_URL to point to your Portal host:
# Default (if not set): http://localhost:5174
export OBP_PORTAL_BASE_URL="https://portal.example.com"A trailing slash is automatically stripped if present.
Config.scala:
obpPortalBaseUrl: StringinOidcConfigcase class- Reads from
OBP_PORTAL_BASE_URLenvironment variable - Defaults to
http://localhost:5174
AuthEndpoint.scala:
- Constructs forgot password link:
s"${config.obpPortalBaseUrl}/forgot-password" - Used in both the main login form and the standalone test login form
The forgot password link appears:
- Below the password input field
- Right-aligned
- Styled as a small blue hyperlink (0.9rem, #0066cc)
- Text: "Forgot password?"
<div style="text-align: right; margin-top: 0.5rem;">
<a href="$forgotPasswordLink" style="font-size: 0.9rem; color: #0066cc; text-decoration: none;">
Forgot password?
</a>
</div>-
Start OIDC server:
./run-server.sh
-
Navigate to test login:
http://localhost:9000/obp-oidc/test-login -
Check that "Forgot password?" link appears below password field
-
Verify link points to
http://localhost:5174/forgot-password
-
Set Portal URL:
export OBP_PORTAL_BASE_URL="https://portal.example.com" ./run-server.sh
-
Navigate to any login page
-
Verify link points to
https://portal.example.com/forgot-password
The OBP Portal should implement a /forgot-password route that:
- Displays password reset form: Collect username/email
- Validates user exists: Check against user database
- Sends reset email: Email with secure reset token/link
- Handles reset flow: Allow user to set new password
- No sensitive data in URL: The forgot password link contains no user information
- Application responsibility: Password reset security is handled by the Portal
- HTTPS in production: Always use HTTPS for password reset flows in production
- Rate limiting: The Portal should implement rate limiting on password reset requests
- README.md - Main documentation with configuration examples
- LOGO-CONFIGURATION.md - Logo and branding customization
- DESIGN-NOTES.md - UI design principles