MDK now supports multi-user login capability. This means a
MDK app on a device can now securely be shared across multiple users. Capabilities such as adding a new user, switching across user, searching from a list of the user are supported out of the box by the client.
Following needs to be done to enable multi-user support for an app:
- Enable Multi-User settings - This enables multi user settings at the client side and initialize the constructs required to support multi user.
- Enable the flag
Allow Upload of Pending Changes from Previous Userfor the app in the mobile services cockpit. In CF this flag is available in
Mobile Settings Exchangefeature under
Shared Devicessection. In Neo this flag is available in
Client Policiesfeature under
Shared Devicessection. This flag ensures that any pending offline changes from previous user are securely uploaded to the service back end. This becomes important when the previous user has not uploaded the offline changes and app is being switched to a new user.
For an existing single user app it is required to rebuild the client with above mentioned setting and enabling the flag in mobile services cockpit. Once the client on a device is updated the user will have to reset the client and re-login before multi-user capability can be enabled.
Along with above mentioned capabilities, here are some more features which can be used while implementing multi-user capabilities:
SkipResetflag in Logout action - If set to true the invocation of Logout action will redirect the user to Sign-In screen, by re-entering the passcode user can re-login and can start using the app. In a multi-user scenario each user may want to logout before they hand over the device to a different user. Default value of this flag is false which means the app would be reset clearing stored credentials such as passcode or Touch ID, authentication token, Offline Store. It is recommended to set this flag to true in a multi-user scenario.
OnUserSwitch- This event is raised when the user is switched in Multi-User mode and all the pending Offline OData transactions from previous user are successfully synced.
isAppInMultiUserModeclient API determines if the application is in single or multi user mode. This helps to invoke different action depending on the mode for example Logout action with
SkipResetset to true can be invoked in multi-user mode and Logout action with
SkipResetset to false can be invoked in single user mode.