React Native Windows library providing developers with all Windows Hello features.
The following library allows you to use all features of Windows Hello functionality. This includes the signing-in options and passport. This library is a set of native methods providing easy API to fetch the device availability, sign in using your biometrics.
To install this module cd
to your project directory and enter the following command:
yarn add -D react-native-windows-hello
or
npm install react-native-windows-hello --save
After having it installed you can import all the Windows Hello features like so:
import { SignIn, verificationResult, availabilityStatus } from 'react-native-windows-hello';
The API contains two methods: requestConsentVerification
and getDeviceStatus
each returning a promise with result object containing both value
and message
with pre-defined text (in english) describing the returned result.
So the example of usage would be:
SignIn.requestConsentVerification("This customized message will be displayed in biometric prompt")
.then(result => {
Alert.alert(
`${result === verificationResult.Verified ? "SUCCESS" : "ERROR"}`,
result.message
);
})
.catch(error => {
Alert.alert("ERROR:", `${error}`);
});
Check out the example project for more examples.
The following library provides you with the native modules exposing the following methods:
Method & Description | Arguments | Returns |
---|---|---|
SignIn.getDeviceStatus | ||
Gets the status of biometric device on a user's machine and returns a promise with the result. The returned promise is resolved with a status, and is rejected in case of any internal issues/errors. |
- | Promise with availabilityStatus |
SignIn.requestConsentVerification | ||
Displays the biometric scan prompt as a popup and returns a promise after user's actions. The returned promise is resolved no matter if the verification was successful or not, and is rejected in case of any internal failure/error or when incorrect promptMessage has been passed as an argument. |
promptMessage : String Additional text which will be placed in the login prompt popup. |
Promise with verificationResult |
Each method returns one of the enumerated objects representing the result of called action (getDeviceStatus
, requestConsentVerification
).
Each of these objects contain two properties:
value
- contains numerical value matching the official values. This can be used by developers for internal implementation keeping the last result for simplicity.message
- official text (in english) saying exactly what the result is. This can be used to directly display the status without conversions.
There are two groups of result objects:
Result | value |
message |
---|---|---|
Available | 0 | "A biometric verifier device is available." |
DeviceNotPresent | 1 | "There is no biometric verifier device available." |
NotConfiguredForUser | 2 | "A biometric verifier device is not configured for this user." |
DisabledByPolicy | 3 | "Group policy has disabled the biometric verifier device." |
DeviceBusy | 4 | "The biometric verifier device is performing an operation and is unavailable." |
and
Result | value |
message |
---|---|---|
Verified | 0 | "User consent verified" |
DeviceNotPresent | 1 | "There is no biometric verifier device available." |
NotConfiguredForUser | 2 | "A biometric verifier device is not configured for this user." |
DisabledByPolicy | 3 | "Group policy has disabled the biometric verifier device." |
DeviceBusy | 4 | "The biometric verifier device is performing an operation and is unavailable." |
RetriesExhausted | 5 | "After 10 attempts, the original verification request and all subsequent attempts at the same verification were not verified." |
Canceled | 6 | "The verification operation was canceled." |
If you would like to contribute to the react-native-windows-hello project, you are more than welcome! You can do this by:
- Create an Issue and let the author handle it
Each issue created in the Issues section gives a chance of improving the project and make it even more useful. - Create the Pull Request with the desired changes
When creating the pull request please remember to describe changes you made and how to test them. A short demo of any kind is very appreciated.
To start developing you need to fork this project, and clone your fork.
After that you can:
yarn install
- Implement changes (mostly in windows/ReactNativeWindowsHello/Source directory)
- After implementation you can check the build by running:
msbuild -p:Configuration=Debug -p:Platform=x64 .\windows\ReactNativeWindowsHello.sln
Or launch the build through the Visual Studio.