auth persistance
This commit is contained in:
21
src/auth.ts
21
src/auth.ts
@@ -11,7 +11,7 @@ export const useAuthStore = defineStore('auth', () => {
|
|||||||
client_id: import.meta.env.VITE_AUTH_CLIENT_ID,
|
client_id: import.meta.env.VITE_AUTH_CLIENT_ID,
|
||||||
client_secret: import.meta.env.VITE_AUTH_CLIENT_SECRET,
|
client_secret: import.meta.env.VITE_AUTH_CLIENT_SECRET,
|
||||||
redirect_uri: import.meta.env.VITE_AUTH_REDIRECT_URI,
|
redirect_uri: import.meta.env.VITE_AUTH_REDIRECT_URI,
|
||||||
scope: import.meta.env.VITE_AUTH_SCOPE,
|
scope: import.meta.env.VITE_AUTH_SCOPE
|
||||||
});
|
});
|
||||||
|
|
||||||
const user = ref<User>();
|
const user = ref<User>();
|
||||||
@@ -23,23 +23,24 @@ export const useAuthStore = defineStore('auth', () => {
|
|||||||
await userManager.signinRedirect();
|
await userManager.signinRedirect();
|
||||||
log.info("Redirecting to login page");
|
log.info("Redirecting to login page");
|
||||||
}
|
}
|
||||||
|
|
||||||
const login = async () => {
|
const login = async () => {
|
||||||
await userManager.signinCallback();
|
await userManager.signinCallback();
|
||||||
log.debug("Logged in");
|
log.debug("Logged in");
|
||||||
}
|
}
|
||||||
|
|
||||||
const logout = async () => {
|
const logout = async () => {
|
||||||
await userManager.signoutRedirect();
|
await userManager.signoutRedirect();
|
||||||
log.debug("Logged out");
|
log.debug("Logged out");
|
||||||
}
|
}
|
||||||
|
|
||||||
userManager.events.addUserLoaded(u => {
|
const setUser = (u?: User | null) => {
|
||||||
user.value = u;
|
if (u) {
|
||||||
log.info("User loaded", u.profile.name);
|
user.value = u;
|
||||||
});
|
log.debug("User loaded", u.profile.name);
|
||||||
userManager.events.addAccessTokenExpiring(() => {
|
} else {
|
||||||
log.debug("Access token expiring");
|
user.value = undefined;
|
||||||
});
|
}
|
||||||
|
}
|
||||||
|
userManager.events.addUserLoaded(setUser);
|
||||||
|
userManager.getUser().then(setUser);
|
||||||
return { redirect, login, logout, isLoggedIn, accessToken, username };
|
return { redirect, login, logout, isLoggedIn, accessToken, username };
|
||||||
});
|
});
|
||||||
Reference in New Issue
Block a user