npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

capacitor-secure-storage-plugin

v0.10.0

Published

Securely store secrets such as usernames, passwords, tokens, certificates or other sensitive information (strings) on iOS & Android

Downloads

74,788

Readme

capacitor-secure-storage-plugin

Capacitor plugin for storing string values securly on iOS and Android.

How to install

For Capacitor v6

npm install capacitor-secure-storage-plugin

For Capacitor v5 - install with fixed version 0.9.0

npm install [email protected]

For Capacitor v4 - install with fixed version 0.8.1

npm install [email protected]

For Capacitor v3 - install with fixed version 0.7.1

npm install [email protected]

For Capacitor v2 - install with fixed version 0.5.1

npm install [email protected]

Usage

For Capacitor v3 & v4

In a component where you want to use this plugin add to or modify imports:

import { SecureStoragePlugin } from 'capacitor-secure-storage-plugin';

For Capacitor v2

In a component where you want to use this plugin add to or modify imports:

import 'capacitor-secure-storage-plugin';
import { Plugins } from '@capacitor/core';

const { SecureStoragePlugin } = Plugins;

First line is needed because of web part of the plugin (current behavior of Capacitor, this may change in future releases).

Capacitor V2 - Android

In Android with Capacitor v2 you have to register plugins manually in MainActivity class of your app.

How to register plugins for Capacitor V2

import com.whitestein.securestorage.SecureStoragePlugin;

...

public class MainActivity extends BridgeActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Initializes the Bridge
    this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() {{
      // Additional plugins you've installed go here
      // Ex: add(TotallyAwesomePlugin.class);
      add(SecureStoragePlugin.class);
    }});
  }
}

Methods


get(options: { key: string }): Promise<{ value: string }>

Note if item with specified key does not exist, throws an Error



set(options: { key: string; value: string }): Promise<{ value: boolean }>

Note return true in case of success otherwise throws an error



remove(options: { key: string }): Promise<{ value: boolean }>

Note return true in case of success otherwise throws an error


keys(): Promise<{ value: string[] }>


  clear(): Promise<{ value: boolean }>

Note return true in case of success otherwise throws an error



getPlatform(): Promise<{ value: string }>

Note return returns which implementation is used - one of 'web', 'ios' or 'android'

Example

const key = 'username';
const value = 'hellokitty2';

SecureStoragePlugin.set({ key, value }).then(success => console.log(success));
const key = 'username';
SecureStoragePlugin.get({ key })
  .then(value => {
    console.log(value);
  })
  .catch(error => {
    console.log('Item with specified key does not exist.');
  });
async getUsername(key: string) {
  return await SecureStoragePlugin.get({ key });
}

Platform specific information

iOS

This plugin uses SwiftKeychainWrapper under the hood for iOS.

Warning Up to version v0.4.0 there was standard keychain used. Since v0.5.0 there is separate keychain wrapper, so keys() method returns only keys set in v0.5.0 or higher version.

Android

On Android it is implemented by AndroidKeyStore and SharedPreferences. Source: Apriorit

Warning For Android API < 18 values are stored as simple base64 encoded strings.

Web

There is no secure storage in browser (not because it is not implemented by this plugin, but it does not exist at all). Values are stored in LocalStorage, but they are at least base64 encoded. Plugin adds 'capsec' prefix to keys to avoid conflicts with other data stored in LocalStorage.