feat(auth): prepare MSAL browser integration
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
import "dart:js_interop";
|
||||
|
||||
@JS("emeMsal.initialize")
|
||||
external JSPromise<JSAny?> _initialize(
|
||||
JSString tenantId,
|
||||
JSString clientId,
|
||||
JSString scope,
|
||||
JSString redirectUri,
|
||||
);
|
||||
|
||||
@JS("emeMsal.signIn")
|
||||
external JSPromise<JSAny?> _signIn();
|
||||
|
||||
@JS("emeMsal.getAccessToken")
|
||||
external JSPromise<JSString> _getAccessToken();
|
||||
|
||||
@JS("emeMsal.hasAccount")
|
||||
external JSBoolean _hasAccount();
|
||||
|
||||
@JS("emeMsal.signOut")
|
||||
external JSPromise<JSAny?> _signOut();
|
||||
|
||||
class MsalBridge {
|
||||
MsalBridge._();
|
||||
|
||||
static Future<void> initialize({
|
||||
required String tenantId,
|
||||
required String clientId,
|
||||
required String scope,
|
||||
required String redirectUri,
|
||||
}) async {
|
||||
await _initialize(
|
||||
tenantId.toJS,
|
||||
clientId.toJS,
|
||||
scope.toJS,
|
||||
redirectUri.toJS,
|
||||
).toDart;
|
||||
}
|
||||
|
||||
static Future<void> signIn() async {
|
||||
await _signIn().toDart;
|
||||
}
|
||||
|
||||
static Future<String> getAccessToken() async {
|
||||
final token = await _getAccessToken().toDart;
|
||||
return token.toDart;
|
||||
}
|
||||
|
||||
static bool hasAccount() {
|
||||
return _hasAccount().toDart;
|
||||
}
|
||||
|
||||
static Future<void> signOut() async {
|
||||
await _signOut().toDart;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user