expo-sms-retriever
v0.1.1
Published
Native expo SMS retriever module
Maintainers
Readme
Expo SMS Retriever
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-retrieverOR
yarn add expo-sms-retrieverUsage
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
addListenerso 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 theSmsRetrieverClient
stop
async stop() : Promise<boolean>Unregisters the Native listeners.
NOTE: This method is called by
removeListenermethod 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.
