mikhail-t
mikhail-t

Reputation: 4221

Ionic native secure storage plugin fails silently (on Ionic View and Ionic Dev App on Android)

I have added Ionic Secure Storage plugin (to store authentication tokens) into my Ionic project, and it works properly locally when running cordova run browser (so that cordova is loaded as a plaform).

However, when I open my project in Ionic DevApp and Ionic View on Android (works correctly on iOS), it fails silently whenever I try to retrieve the saved token.

Here is my code:

// ... unrelated imports omitted
import {Platform} from "ionic-angular";
import {SecureStorage, SecureStorageObject} from "@ionic-native/secure-storage";

@Component({
    selector: 'my-component',
    templateUrl: 'my-component.html'
})
export class MyComponent {

    constructor(private platform: Platform,
                private secureStorage: SecureStorage) {
    }

    ngOnInit() {
        this.getToken().then(token => {
            // ... do something with the retrieved token
        });
    }

    getToken() {
        if (this.platform.is('cordova')) {
            /**
             * Code below silently fails in Ionic View and Ionic Dev App
             * on Android (works correctly on iOS)
             */
            return this.platform.ready().then(() =>
                return this.secureStorage.create('cp_secure_storage')
                    .then((storage: SecureStorageObject) => {
                        return storage.get('TOKEN_NAME')
                            .then(token => {
                                console.log(token);
                                return token;
                            }, () => null);
                    });
            });
        } else {
            return Promise.resolve(localStorage.getItem('TOKEN_NAME'));
        }
    }

}

I have Ionic error monitoring turned on and it catches no errors.

Plugin version:

"@ionic-native/secure-storage": "4.5.3",
"cordova-plugin-secure-storage": "^2.6.8"

Upvotes: 1

Views: 973

Answers (0)

Related Questions