I have a web app in reactjs that uses the Google login that is integrated into Appwrite for user login. I use createOAuth2Token() to login to their account. And I use createSession() to create a session within the Appwrite environment. To logout, I use deleteSession(). This approach of mine, however, only deletes the user's in process session within the Appwrite environment. It does not logout the user from their google account. I know this, because after clicking 'logout, when the user tries to log back in, they are immediately signed in without being prompted to enter their Google credentials again.
I logged the details of the session, and I saw that providerAccessToken is an empty string. Since providerAccessToken is an empty string for Googe OAuth2 logins, I assumend that the session $id can replace it. However, it did not help. Google returns Bad Request and does not logout the user from Google.
export const deleteUserSession = async () => {
const currentSession = await account.getSession('current');
const accessToken = currentSession.$id;
console.log('currentSession', currentSession);
console.log('accessToken', accessToken);
try {
if (currentSession && accessToken) {
await account.deleteSession(currentSession.$id);
console.log('Session deleted successfully');
await fetch('https://accounts.google.com/o/oauth2/revoke?token=' + accessToken, {
method: 'GET',
mode: 'no-cors',
});
console.log('LOGGED OUT SUCCESSFULLY.');
}
console.log('REDIRECTING TO /');
} catch (error) {
console.error('Error deleting the session:', error);
}
}
Recommended threads
- Collections list not showing up when try...
I'm trying to create new relationship attribute but both one way and two way relationship is not showing up collections list to connect with my relationship att...
- I have try to use the appwrite in to the...
Invalid Origin. Register your new client (oailedjdbkhlkakmnnapoonllbnfmfij) as a new Web (Chrome Extension) platform on your project console dashboard
- Weird permission failure
when creating an account I use following methods: ``` Future<void> register(String email, String password, String username) async { final user = await accoun...