forked from oblador/react-native-keychain
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refactored methods to pass an accessGroup param needed for iOS Keycha…
…in sharing
- Loading branch information
Showing
3 changed files
with
161 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
import { NativeModules, Platform } from 'react-native'; | ||
const { RNKeychainManager } = NativeModules; | ||
|
||
/** | ||
* Saves the `username` and `password` combination for `server`. | ||
* @param {string} server URL to server. | ||
* @param {string} accessGroup Group name for keychain sharing. | ||
* @param {string} username Associated username or e-mail to be saved. | ||
* @param {string} password Associated password to be saved. | ||
* @return {Promise} Resolves to `true` when successful | ||
*/ | ||
export function setInternetCredentials( | ||
server: string, | ||
username: string, | ||
password: string, | ||
accessGroup?: string | ||
): Promise { | ||
return RNKeychainManager.setInternetCredentialsForServer(server, accessGroup, username, password); | ||
} | ||
|
||
/** | ||
* Fetches login combination for `server`. | ||
* @param {string} server URL to server. | ||
* @param {string} accessGroup Group name for keychain sharing. | ||
* @return {Promise} Resolves to `{ server, username, password }` when successful | ||
*/ | ||
export function getInternetCredentials( | ||
server: string, | ||
accessGroup?: string | ||
): Promise { | ||
return RNKeychainManager.getInternetCredentialsForServer(server, accessGroup); | ||
} | ||
|
||
/** | ||
* Deletes all internet password keychain entries for `server`. | ||
* @param {string} server URL to server. | ||
* @param {string} accessGroup Group name for keychain sharing. | ||
* @return {Promise} Resolves to `true` when successful | ||
*/ | ||
export function resetInternetCredentials( | ||
server: string, | ||
accessGroup?: string | ||
): Promise { | ||
return RNKeychainManager.resetInternetCredentialsForServer(server, accessGroup); | ||
} | ||
|
||
/** | ||
* Saves the `username` and `password` combination for `service`. | ||
* @param {string} username Associated username or e-mail to be saved. | ||
* @param {string} password Associated password to be saved. | ||
* @param {string} service Reverse domain name qualifier for the service, defaults to `bundleId`. | ||
* @param {string} accessGroup Group name for keychain sharing. | ||
* @return {Promise} Resolves to `true` when successful | ||
*/ | ||
export function setGenericPassword( | ||
username: string, | ||
password: string, | ||
service?: string, | ||
accessGroup?: string | ||
): Promise { | ||
return RNKeychainManager.setGenericPasswordForService(service, accessGroup, username, password); | ||
} | ||
|
||
/** | ||
* Fetches login combination for `service`. | ||
* @param {string} service Reverse domain name qualifier for the service, defaults to `bundleId`. | ||
* @param {string} accessGroup Group name for keychain sharing. | ||
* @return {Promise} Resolves to `{ service, username, password }` when successful | ||
*/ | ||
export function getGenericPassword( | ||
service?: string, | ||
accessGroup?: string | ||
): Promise { | ||
return RNKeychainManager.getGenericPasswordForService(service, accessGroup); | ||
} | ||
|
||
/** | ||
* Deletes all generic password keychain entries for `service`. | ||
* @param {string} service Reverse domain name qualifier for the service, defaults to `bundleId`. | ||
* @param {string} accessGroup Group name for keychain sharing. | ||
* @return {Promise} Resolves to `true` when successful | ||
*/ | ||
export function resetGenericPassword( | ||
service?: string, | ||
accessGroup?: string | ||
): Promise { | ||
return RNKeychainManager.resetGenericPasswordForService(service, accessGroup); | ||
} | ||
|
||
/** | ||
* Asks the user for a shared web credential. | ||
* @return {Promise} Resolves to `{ server, username, password }` if approved and | ||
* `false` if denied and throws an error if not supported on platform or there's no shared credentials | ||
*/ | ||
export function requestSharedWebCredentials() : Promise { | ||
return RNKeychainManager.requestSharedWebCredentials(); | ||
} | ||
|
||
/** | ||
* Sets a shared web credential. | ||
* @param {string} server URL to server. | ||
* @param {string} username Associated username or e-mail to be saved. | ||
* @param {string} password Associated password to be saved. | ||
* @return {Promise} Resolves to `true` when successful | ||
*/ | ||
export function setSharedWebCredentials( | ||
server: string, | ||
username: string, | ||
password: string | ||
) : Promise { | ||
return RNKeychainManager.setSharedWebCredentialsForServer(server, username, password); | ||
} |