accredifysg/singpass-login
Laravel package for SingPass Login, MyInfo, and CorpPass using FAPI 2.0-style auth: OpenID discovery, Pushed Authorization Requests (PAR) with DPoP, PKCE, and private-key JWT client assertions. Includes shared services and thin provider controllers.
Architecture Fit The package now supports FAPI 2.0 (Financial-grade API) and CorpPass, expanding its use case from SingPass-only authentication to broader government/corporate identity ecosystems. This aligns well with Laravel-based systems requiring OAuth2/OpenID Connect (OIDC) with enhanced compliance (e.g., financial services, enterprise SSO). The addition of strict typing and PHPStan coverage suggests improved robustness for large-scale deployments.
Integration Feasibility
Auth::guard('singpass')).web-token/jwt-framework) are low-risk, but GitHub Actions upgrades (v5→v7) could impact CI/CD pipelines if using custom workflows.Technical Risk
declare(strict_types=1).CorpPass::authenticate()) could require backward-compatible aliases or wrapper classes to avoid breaking existing code.jwt-framework upgrades) for compliance.Key Questions
Stack Fit
web-token/jwt-framework).Auth facade and service containers.Migration Path
strict_types=1 in bootstrap/app.php and test for type errors.token_binding headers).composer.json dependency ("accredifysg/singpass-login": "^3.0").config/singpass.php) if using CorpPass (new corppass section).AuthServiceProvider to register CorpPass guard:
$this->app['guard']->extend('corppass', function ($app) {
return new CorpPassGuard($app['auth']->createUserProvider(), $app['request']);
});
Compatibility
jwt-framework, phpstan are safe; GitHub Actions bumps may need workflow adjustments.Sequencing
Maintenance
Support
token_binding failures).jwt-framework and web-token for future breaking changes.Scaling
Failure Modes
| Scenario | Impact | Mitigation |
|---|---|---|
| Strict types errors | Runtime crashes | Gradual enablement with feature flag |
| FAPI 2.0 token rejection | Auth failures | Fallback to OIDC v1.0 for legacy |
| GitHub Actions v7+ fail | CI/CD pipeline breaks | Pin actions versions in workflows |
| CorpPass misconfiguration | Partial auth failures | Staging validation before rollout |
Ramp-Up
null returns).How can I help you explore Laravel packages today?