Support for the AgileBits 1Password App Extention in Titanium Mobile to open 1Password for selecting credentials.
- Check if 1Password is installed and can be used
- Receive login credentials from 1Password
- Store login credentials in 1Password
- Change login credentials in 1Password
Add the following url-scheme to the <plist>
section of your tiapp.xml
like this:
<ios>
<plist>
<dict>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>org-appextension-feature-password-management</string>
</array>
</dict>
</plist>
</ios>
Require the module:
var OnePassword = require("ti.onepassword");
Check if the application supports the 1Password App Extension to show/hide a custom 1Password button:
var isAvailable = OnePassword.isAppExtensionAvailable();
Request login credentials from 1Password:
OnePassword.findLoginForURLString({
url: "https://appcelerator.com",
callback: function(e) {
// Check if the operation succeeded
if (!e.success) {
alert("Login could not be received: " + e.error);
return;
}
// Success - Prefill the form fields
usernameField.setValue(e.credentials.username);
passwordField.setValue(e.credentials.password);
}
});
Add a new login to 1Password:
OnePassword.storeLoginForURLString({
url: "https://appcelerator.com",
credentials: {
username: "my_username",
password: "my_password"
},
options: {
password_min_length: 6,
password_max_length: 18
},
callback: function(e) {
if (!e.success) {
alert("Credentials could not be added to 1Password: " + e.error);
return;
}
// Success
}
});
Change an existing login in 1Password:
OnePassword.changePasswordForLoginForURLString({
url: "https://appcelerator.com",
credentials: {
username: "my_username",
password: "my_new_password"
},
options: {
password_min_length: 6,
password_max_length: 18
},
callback: function(e) {
if (!e.success) {
alert("Credentials could not be added to 1Password: " + e.error);
return;
}
// Success
}
});
- url_string
- username
- password
- totp
- login_title
- notes
- section_title
- fields
- returned_fields
- old_password
- password_generator_options
- password_min_length
- password_max_length
- password_require_digits
- password_require_symbols
- password_forbidden_characters
Check example/app.js
for a basic example.
Hans Knoechel (@hansemannnn / Web)
Apache 2.0
Code contributions are greatly appreciated, please submit a new pull request!