3.5.1 • Published 7 months ago
@recognizebv/capacitor-plugin-msauth v3.5.1
Capacitor Plugin MS auth
This plugin contains an implementation of MSAL for Capacitor.
Installation
yarn add @recognizebv/capacitor-plugin-msauth
npx cap sync
- Create an app registration
- In the app registration, go to Authentication, and then Add platform, and then iOS/macOS
- You will be asked for a bundle identifier, which you can find in Xcode (under the General tab of your project)
- Do the same for Android. When asked for the package name, use the name defined in
AndroidManifest.xml
. - In the Signature section, generate a hash for your key. You will need this key hash later.
- (iOS) Add a new keychain group to your project's Signing & Capabilities. The keychain group should be
com.microsoft.adalcache
- (iOS) Configure URL-schemes by adding the following to your
Info.plist
file:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>msauth.$(PRODUCT_BUNDLE_IDENTIFIER)</string>
</array>
</dict>
</array>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>msauthv2</string>
<string>msauthv3</string>
</array>
- (iOS) Add
import RecognizebvCapacitorPluginMsauth
to the top of the AppDelegate file to ensure that the library is linked - (iOS) if your app's AppDelegate already implements a
application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool
function, you should add the following code inside this method:
if MsAuthPlugin.checkAppOpen(url: url, options: options) == true {
return true
}
- (Android) In the
AndroidManifest.xml
file, append the following code within the<application>
section:
<activity
android:name="com.microsoft.identity.client.BrowserTabActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="msauth"
android:host="<package name>"
android:path="/<key hash, with prepending slash>" />
</intent-filter>
</activity>
Note that there are two placeholders, one for you package name and one for the key hash.
- (Android) Add the following snippet to the
build.gradle
file in theandroid/
folder
allprojects {
repositories {
maven {
url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1'
}
}
}
- (Android) Register the plugin in the main activity
Usage
Usage of the plugin is fairly simple, as it has just two methods: login
and logout
.
Login
import {Plugins} from '@capacitor/core';
const {MsAuthPlugin} = Plugins;
const result = await MsAuthPlugin.login({
clientId: '<client id>',
tenant: '<tenant, defaults to common>',
domainHint: '<domainHint>',
scopes: ['<scopes, defaults to no scopes>'],
keyHash: '<Android only, the key hash as obtained above>',
});
const accessToken = result.accessToken;
Logout
import {Plugins} from '@capacitor/core';
const {MsAuthPlugin} = Plugins;
await MsAuthPlugin.logout({
clientId: '<client id>',
tenant: '<tenant, defaults to common>',
domainHint: '<domainHint>',
keyHash: '<Android only, the key hash as obtained above>',
});
3.4.0
8 months ago
3.3.0
8 months ago
3.5.1
7 months ago
3.5.0
7 months ago
3.4.1
8 months ago
3.2.0
1 year ago
3.1.2
1 year ago
3.1.1
1 year ago
3.0.0
2 years ago
2.0.1
2 years ago
2.0.0
3 years ago
1.1.0-b2c.2
3 years ago
1.1.0-b2c.1
3 years ago
1.1.0
3 years ago
1.1.0-b2c.0
3 years ago
1.0.1
3 years ago
1.0.0
3 years ago
0.1.0-beta.10
3 years ago
0.1.0-beta.9
3 years ago
0.1.0-beta.8
3 years ago
0.1.0-beta.3
3 years ago
0.1.0-beta.5
3 years ago
0.1.0-beta.4
3 years ago
0.1.0-beta.7
3 years ago
0.1.0-beta.6
3 years ago
0.1.0-beta.2
3 years ago
0.1.0-beta.1
3 years ago
0.0.11
4 years ago
0.0.10
4 years ago
0.0.9
4 years ago
0.0.8
4 years ago
0.0.7
4 years ago
0.0.6
4 years ago
0.0.5
4 years ago
0.0.4
4 years ago
0.0.3
4 years ago
0.0.2
4 years ago
0.0.1
4 years ago