@@ -16,6 +16,24 @@ public class MsAuthPlugin: CAPPlugin {
1616
1717 let scopes = call. getArray ( " scopes " , String . self) ?? [ ]
1818
19+ var promptType : MSALPromptType = . selectAccount
20+ if let prompt = call. getString ( " prompt " ) ? . lowercased ( ) {
21+ switch prompt {
22+ case " select_account " :
23+ promptType = . selectAccount
24+ case " login " :
25+ promptType = . login
26+ case " consent " :
27+ promptType = . consent
28+ case " none " :
29+ promptType = . promptIfNecessary
30+ case " create " :
31+ promptType = . create
32+ default :
33+ print ( " Unrecognized prompt option: \( prompt) " )
34+ }
35+ }
36+
1937 let completion : ( MSALResult ? ) -> Void = { msalResult in
2038 guard let result = msalResult else {
2139 call. reject ( " Unable to obtain access token " )
@@ -31,7 +49,7 @@ public class MsAuthPlugin: CAPPlugin {
3149
3250 loadCurrentAccount ( applicationContext: context) { ( account) in
3351 guard let currentAccount = account else {
34- self . acquireTokenInteractively ( applicationContext: context, scopes: scopes, completion: completion)
52+ self . acquireTokenInteractively ( applicationContext: context, scopes: scopes, promptType : promptType , completion: completion)
3553 return
3654 }
3755
@@ -224,7 +242,7 @@ public class MsAuthPlugin: CAPPlugin {
224242
225243 }
226244
227- func acquireTokenInteractively( applicationContext: MSALPublicClientApplication , scopes: [ String ] , completion: @escaping ( MSALResult ? ) -> Void ) {
245+ func acquireTokenInteractively( applicationContext: MSALPublicClientApplication , scopes: [ String ] , promptType : MSALPromptType , completion: @escaping ( MSALResult ? ) -> Void ) {
228246 guard let bridgeViewController = bridge? . viewController else {
229247 print ( " Unable to get Capacitor bridge.viewController " )
230248
@@ -235,7 +253,7 @@ public class MsAuthPlugin: CAPPlugin {
235253 let wvParameters = MSALWebviewParameters ( authPresentationViewController: bridgeViewController)
236254 let parameters = MSALInteractiveTokenParameters ( scopes: scopes, webviewParameters: wvParameters)
237255
238- parameters. promptType = . selectAccount
256+ parameters. promptType = promptType
239257
240258 applicationContext. acquireToken ( with: parameters) { ( result, error) in
241259 if let error = error {
@@ -268,7 +286,7 @@ public class MsAuthPlugin: CAPPlugin {
268286
269287 if nsError. code == MSALError . interactionRequired. rawValue {
270288 DispatchQueue . main. async {
271- self . acquireTokenInteractively ( applicationContext: applicationContext, scopes: scopes, completion: completion)
289+ self . acquireTokenInteractively ( applicationContext: applicationContext, scopes: scopes, promptType : . selectAccount , completion: completion)
272290 }
273291 return
274292 }
0 commit comments