0.1.1 • Published 1 year ago

expo-sms-retriever v0.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Expo SMS Retriever

Static Badge Static Badge Static Badge NPM Version NPM License

Native expo SMS retriever module for android

With the SMS Retriever API, you can automate SMS-based user verification in your Android app. This eliminates the need for users to manually enter verification codes and avoids the necessity of additional app permissions.

Installation

Add the package to your npm dependencies

npm install expo-sms-retriever

OR

yarn add expo-sms-retriever

Usage

getHash

async getHash() : Promise<string>

Returns a unique identifier that helps verify the authenticity of the app that receives the SMS.

addListener

addListener(callback) -> callback(<MessageEventPayload>)

Add a listener callback. The callback function is called with MessageEventPayload.

removeListener

removeListener()

Removes all listener.

start

async start() : Promise<boolean>

Starts the Google GSM SmsRetrieverClient and registers required Native listeners. It waits for a matching SMS message until timeout (5 minutes).

NOTE: This method is called by addListener so isn't needed to be called if you want to get the message / OTP once. If you want to keep recieving messages you can call the start method inside the callback to reinitate the SmsRetrieverClient

stop

async stop() : Promise<boolean>

Unregisters the Native listeners.

NOTE: This method is called by removeListener method so isn't needed to be called seperately.

MessageEventPayload

{
    message: "<string>", // actual message
    otp: "<string" // parsed otp value
}

Example

Check out the basic usage, we used getHash method to get hash, added a listener updated the otp and finally clear the listeners.

  const [hash, sethash] = useState('');
  const [otp, setotp] = useState('');

  useEffect(() => {
    
    /* get hash */
    SmsRetriever.getHash().then(sethash);

    /* start listening */
    SmsRetriever.addListener((message) => {
      console.log(message);
  
      setotp("OTP is " + message.otp);

      /* stop lsitening */
      SmsRetriever.removeListener();
    });

  }, []);

Behavoiur in Expo Go

If the module could not find the SmsRetrieverModule then it will use a mocked module. The Hash will be set to NOHASH and OTP value to 123456

You may modify /src/SmsRetrieverModuleMock.ts in case you want to change these values.

License

Distributed under the MIT License. See LICENSE for more information.

0.1.1

1 year ago

0.1.0

1 year ago