Hi,
the initial oidcSecuritySilentRenew.startRenew(url) inside refreshSession method never fires if the user is not authorized.
I'm getting also the following warning:
angular-auth-oidc-client.js:332 IsAuthorizedRace: Timeout reached. Emitting.
I don't understand why oidcSecuritySilentRenew.startRenew(url) is inside a pipe of getIsAuthorized?
Changing the result of refreshSession method with the following code makes silent login working
return this.getIsModuleSetup().pipe(switchMap(() => {
return this.oidcSecuritySilentRenew.startRenew(url).pipe(map(() => true));
}));
Side effect of #579
@damienbod do you need any help to better understand the issue?
see #588 Could you add your thoughts here, for what you require.
Will also improve this in version 11
Hi damienbod,
This is the use case: a SPA with both public (no login required) and private sections.
This SPA is part of a bigger ecosystem, made by multiple SPA and MVC applications, where an Identity Server 4 manages SSO for all.
In this context, one user can reach the target SPA being already logged-in in the Identity Server (cookie), and we don't want him to click on the login button. Instead, the library should try a silent login against the IDS and, if the cookie is found, authorized the user.
Let me know if you want additional informations.
Thank you very much for you amazing job,
Alessandro
This has been refactored and changed in version 11 which we plan to release in the next few days after testing
Greetings Damien
Most helpful comment
Changing the result of refreshSession method with the following code makes silent login working
return this.getIsModuleSetup().pipe(switchMap(() => { return this.oidcSecuritySilentRenew.startRenew(url).pipe(map(() => true)); }));