-
Notifications
You must be signed in to change notification settings - Fork 163
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
Is there any status to know if a user is logging out? #1456
Comments
Hi @mikibakaiki , does the property isAuthenticated do the job for your use case ? |
Hey @guillaume-chervet , thanks for quickly getting back to me :) I'm still not sure. Going through a big code base, and don't know all the logic behind it 😅 The How could i use the Also, on the same project, it doesn't make sense to use both |
hi @mikibakaiki , yes isAuthenticated is just a boolean. Status is an internal property for internal behavior. You can listen events for this event : the way to listen events =>
|
Thanks for answering, and sorry for taking too long to answer :) i got side tracked on this task. Looking back at it, i think that the isAuthenticated might be a solution. I have two questions, maybe a little of topic (one of them!):
export const configuration = {
client_id: 'interactive.public.short',
redirect_uri: window.location.origin + '/#/authentication/callback',
silent_redirect_uri: window.location.origin + '/#/authentication/silent-callback',
scope: 'openid profile email api offline_access',
authority: 'https://demo.duendesoftware.com',
service_worker_relative_url: '/OidcServiceWorker.js', // just comment that line to disable service worker mode
service_worker_only: false,
demonstrating_proof_of_possession: false,
}; with no type association. Trying to look into this, so i don't change much of the codebase's logic, and can comply with good software practices :) This is the older code version, and what i was looking for: // oidc-client/index.d.ts
export interface OidcClientSettings {
/** The URL of the OIDC/OAuth2 provider */
authority?: string;
readonly metadataUrl?: string;
/** Provide metadata when authority server does not allow CORS on the metadata endpoint */
metadata?: Partial<OidcMetadata>;
/** Provide signingKeys when authority server does not allow CORS on the jwks uri */
signingKeys?: any[];
/** Your client application's identifier as registered with the OIDC/OAuth2 */
client_id?: string;
client_secret?: string;
/** The type of response desired from the OIDC/OAuth2 provider (default: 'id_token') */
readonly response_type?: string;
readonly response_mode?: string;
/** The scope being requested from the OIDC/OAuth2 provider (default: 'openid') */
readonly scope?: string;
/** The redirect URI of your client application to receive a response from the OIDC/OAuth2 provider */
readonly redirect_uri?: string;
/** The OIDC/OAuth2 post-logout redirect URI */
readonly post_logout_redirect_uri?: string;
/** The OIDC/OAuth2 post-logout redirect URI when using popup */
readonly popup_post_logout_redirect_uri?: string;
readonly prompt?: string;
readonly display?: string;
readonly max_age?: number;
readonly ui_locales?: string;
readonly acr_values?: string;
/** Should OIDC protocol claims be removed from profile (default: true) */
readonly filterProtocolClaims?: boolean;
/** Flag to control if additional identity data is loaded from the user info endpoint in order to populate the user's profile (default: true) */
readonly loadUserInfo?: boolean;
/** Number (in seconds) indicating the age of state entries in storage for authorize requests that are considered abandoned and thus can be cleaned up (default: 300) */
readonly staleStateAge?: number;
/** The window of time (in seconds) to allow the current time to deviate when validating id_token's iat, nbf, and exp values (default: 300) */
readonly clockSkew?: number;
readonly clockService?: ClockService;
readonly stateStore?: StateStore;
readonly userInfoJwtIssuer?: 'ANY' | 'OP' | string;
readonly mergeClaims?: boolean;
ResponseValidatorCtor?: ResponseValidatorCtor;
MetadataServiceCtor?: MetadataServiceCtor;
/** An object containing additional query string parameters to be including in the authorization request */
extraQueryParams?: Record<string, any>;
}
export interface UserManagerSettings extends OidcClientSettings {
/** The URL for the page containing the call to signinPopupCallback to handle the callback from the OIDC/OAuth2 */
readonly popup_redirect_uri?: string;
/** The features parameter to window.open for the popup signin window.
* default: 'location=no,toolbar=no,width=500,height=500,left=100,top=100'
*/
readonly popupWindowFeatures?: string;
/** The target parameter to window.open for the popup signin window (default: '_blank') */
readonly popupWindowTarget?: any;
/** The URL for the page containing the code handling the silent renew */
readonly silent_redirect_uri?: any;
/** Number of milliseconds to wait for the silent renew to return before assuming it has failed or timed out (default: 10000) */
readonly silentRequestTimeout?: any;
/** Flag to indicate if there should be an automatic attempt to renew the access token prior to its expiration (default: false) */
readonly automaticSilentRenew?: boolean;
readonly validateSubOnSilentRenew?: boolean;
/** Flag to control if id_token is included as id_token_hint in silent renew calls (default: true) */
readonly includeIdTokenInSilentRenew?: boolean;
/** Will raise events for when user has performed a signout at the OP (default: true) */
readonly monitorSession?: boolean;
/** Interval, in ms, to check the user's session (default: 2000) */
readonly checkSessionInterval?: number;
readonly query_status_response_type?: string;
readonly stopCheckSessionOnError?: boolean;
/** Will invoke the revocation endpoint on signout if there is an access token for the user (default: false) */
readonly revokeAccessTokenOnSignout?: boolean;
/** The number of seconds before an access token is to expire to raise the accessTokenExpiring event (default: 60) */
readonly accessTokenExpiringNotificationTime?: number;
readonly redirectNavigator?: any;
readonly popupNavigator?: any;
readonly iframeNavigator?: any;
/** Storage object used to persist User for currently authenticated user (default: session storage) */
readonly userStore?: WebStorageStateStore;
} I'm sure most of these things are deprecated. So if there's no specific type in the library, could you tell me the exact properties i would / might need, so i can create an interface :) Thanks and sorry if it got out of topic, or too long and confused 😅 Have a great weekend! |
I think i managed to have everything working like i wanted :) thanks for the help and support, you can close the ticket! Keep up the good work @guillaume-chervet 👏 |
Not an issue, more like asking for help :)
Is there any way to know if a user is logging out? I needed this kind of behavior, and i think this was possible using the
react-oidc-context
package. However, reading through the documentation and testing with a react demo, i couldn't find any status for this specific purposes.From what i gather, there's only the
OidcUserStatus
enum.Any hints? :)
EDIT: Meanwhile, found this, and it might be what i want, but how can i use it through oidc-react ?
The text was updated successfully, but these errors were encountered: