TokenService.cs returns RefreshToken = "". No refresh mechanism.
Fix
- Add RefreshTokenEntity, implement rotation with reuse detection
- Expand ITokenService with RefreshTokenAsync, RevokeTokenAsync
- Add API endpoints: POST /api/_account/refreshtoken, POST /api/_account/revoketoken
- Apply DbSet to all demo DataContexts
- DB migration: CREATE TABLE FrameworkRefreshTokens
Risk: Low (additive) | Effort: 2-3 days