Skip to content
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

Bug: Logout is not working and doesn't even return a boolean (it returns undefined) #281

Open
kainbryanjones opened this issue Dec 5, 2024 · 0 comments

Comments

@kainbryanjones
Copy link

Capacitor version:

Run npx cap doctor:

  @capacitor/cli: 6.1.0
  @capacitor/core: 6.1.0
  @capacitor/android: 6.1.0
  @capacitor/ios: 6.1.0

Library version:

  • 3.0.1
  • 2.1.0
  • 2.0.0
  • other: (Please fill in the version you are using.)

OAuth Provider:

  • Google
  • Facebook
  • Azure AD (B2C)
  • Github
  • Other: (Please fill in the provider you are using.)

Your Plugin Configuration

const config: CapacitorConfig = {
  appId: 'life.evam.hydras.cs',
  appName: 'Central Services',
  webDir: 'dist'
};

Affected Platform(s):

  • Android
    • Version/API Level:
    • Device Model:
    • Content of your AndroidManifest.xml
    <activity
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode"
            android:name=".MainActivity"
            android:label="@string/title_activity_main"
            android:theme="@style/AppTheme.NoActionBarLaunch"
            android:launchMode="singleTask"
            android:exported="true">

        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>

            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.BROWSABLE"/>
            <data android:scheme="@string/custom_url_scheme" android:host="oauth"/>
        </intent-filter>

    </activity>

    <provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="${applicationId}.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
        <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/file_paths"></meta-data>
    </provider>
    <service
            android:name=".MessagingService"
            android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
    </service>

</application>

<!-- Permissions -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

<queries>
    <package android:name="com.google.android.apps.maps"/>
</queries>
``` * iOS * Version/API Level: * Device Model: * Content of your `Info.plist` ```xml ``` * Web * Browser:

Current Behavior

The logout function doesn't log out at all. When calling the function it doesn't even return true or false (as documented) but returns undefined.

Expected Behavior

The logout function should log me out and return a boolean.

Sample Code or Sample Application Repo

// from another file
export const getOAuth2Options = async (): Promise<OAuth2AuthenticateOptions> => {
    const {
        appId,
        keycloakBaseUrl
    } = await getKeycloakBaseUrlAndAppId();


    return {
        authorizationBaseUrl: `${keycloakBaseUrl}/realms/cs/protocol/openid-connect/auth`,
        accessTokenEndpoint: `${keycloakBaseUrl}/realms/cs/protocol/openid-connect/token`,
        resourceUrl: `${keycloakBaseUrl}/realms/cs/protocol/openid-connect/userinfo`,
        appId: "web",
        scope: "openid email profile roles",
        logsEnabled: true,
        web: {
            appId: "web",
            redirectUrl: window.location.origin,
            responseType: "token",
            accessTokenEndpoint: "",
        },
        android: {
            appId: "web",
            redirectUrl: `${appId}:/`,
            responseType: "code",

        },
        ios: {
            appId: "web",
            redirectUrl: `${appId}:/`,
            responseType: "code"
        }
    }
};

// code which fails
const token = centralServices.accessToken
            if (token !== null) getOAuth2Options().then(optns => {
                GenericOAuth2.logout(optns, token).then((value) => {
                    console.log(JSON.stringify({
                        valueType: typeof value,
                        token
                    }))
                    localStorage.clear()
                }).catch(err => console.log(JSON.stringify({
                    err
                })));
            })

``


### Reproduction Steps
<!--  Please explain the steps required to duplicate the issue, especially if you are able to provide a sample application. -->


### Other Information
<!-- List any other information that is relevant to your issue. Stack traces, related issues, suggestions on how to fix, Stack Overflow links, forum links, etc. -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant