Skip to content
2 changes: 1 addition & 1 deletion src/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ export async function logout(
const session = await getSession(storage)
if (session) {
try {
await WebIdOidc.logout(storage)
await WebIdOidc.logout(storage, session.idp)
} catch (err) {
console.warn('Error logging out:')
console.error(err)
Expand Down
18 changes: 13 additions & 5 deletions src/webid-oidc.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,13 +60,21 @@ export const currentSession = async (
}
}

export const logout = (storage: AsyncStorage): Promise<void> =>
getStoredRp(storage)
.then(rp => (rp ? rp.logout() : undefined))
.catch(err => {
export const logout = async (
storage: AsyncStorage,
idp: string
): Promise<void> => {
const rp = await getStoredRp(storage)
if (rp) {
try {
rp.logout()
fetch(idp + '/logout', { method: 'POST', credentials: 'include' })
} catch (err) {
console.warn('Error logging out of the WebID-OIDC session')
console.error(err)
})
}
}
}

export const getRegisteredRp = (
idp: string,
Expand Down