Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Added callbacks onTokenExpiring and onTokenExpired #91

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

akaegi
Copy link
Contributor

@akaegi akaegi commented Jun 12, 2024

Background: I use auth flow jwt-bearer where there is no refresh token. Still I want to auto-refresh before the token expires. The new callback onTokenExpiring can be used to achieve this.

@@ -784,15 +784,6 @@ abstract class OidcUserManagerBase {
if (user == null) {
tokenEventsManager.unload();
} else {
if (!discoveryDocument.grantTypesSupportedOrDefault
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is removed cause handleTokenExpiring should be called even if there is no refreshToken...

@akaegi akaegi force-pushed the feature/on_token_expiring_callback branch from 994a534 to 878f36f Compare June 12, 2024 14:04
Copy link

codecov bot commented Jun 12, 2024

Codecov Report

Attention: Patch coverage is 0% with 2 lines in your changes missing coverage. Please review.

Project coverage is 16.66%. Comparing base (700d772) to head (670bd98).
Report is 36 commits behind head on main.

Files Patch % Lines
.../oidc_core/lib/src/managers/user_manager_base.dart 0.00% 2 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##             main      #91       +/-   ##
===========================================
- Coverage   94.87%   16.66%   -78.21%     
===========================================
  Files           3       42       +39     
  Lines          39     1158     +1119     
===========================================
+ Hits           37      193      +156     
- Misses          2      965      +963     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@akaegi akaegi changed the title Added callbacks onTokenExpiring and onTokenExpired feat: Added callbacks onTokenExpiring and onTokenExpired Jun 12, 2024
@akaegi akaegi force-pushed the feature/on_token_expiring_callback branch from 878f36f to 670bd98 Compare June 12, 2024 14:20
@@ -803,6 +794,8 @@ abstract class OidcUserManagerBase {

@protected
Future<void> handleTokenExpiring(OidcToken event) async {
settings.onTokenExpiring?.call(event);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we still refresh using refreshToken if the user provides their own onTokenExpiring callback?

also would it make sense to expose a stream of expiring/expired events instead of callbacks ?

Copy link
Contributor Author

@akaegi akaegi Jun 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we still refresh using refreshToken if the user provides their own onTokenExpiring callback?

Maybe there are scenarios where the user has to do some preparatory work before refresh can happen?

Copy link
Contributor Author

@akaegi akaegi Jun 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also would it make sense to expose a stream of expiring/expired events instead of callbacks ?

Whatever you prefer. I could also add events to the existing events stream using new subclasses of OidcEvent (OidcTokenExpiring and OidcTokenExpired)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ahmednfwela Any news from your side? Are there any open points that prevent you from merging this PR? This is somehow important to me as I'm currently referencing my fork in our production app 🙈

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants