nirmalvora / okta_oidc

Other
3 stars 2 forks source link

okta_oidc

okta_oidc provide simple authentication integration in mobile apps.

Sample

Check out sample app Okta oidc

Installation

To add okta_oidc to your flutter application install instructions. Below are some Android and iOS specifics that are required for the okta_oidc to work correctly.

Android 1. Make sure you set the `minSdkVersion` 21 or above in your "android/app/build.gradle" ``` android { minSdkVersion 21 ... } ``` 2. Similar to the sample app, you must add a redirect scheme to receive sign in results from the web browser. To do this, you must define a gradle manifest placeholder in your app's build.gradle: ``` manifestPlaceholders = [ appAuthRedirectScheme: 'Add redirect schema here...' ] ```
iOS 1. Make sure the minimum deployment target in Podfile set to 13 or above ``` platform :ios, '13.0' ```


Add assets/okta_config.json file in root of your project with below data.

{
  "client_id": "",
  "redirect_uri": "",
  "end_session_redirect_uri": "",
  "scopes": [],
  "discovery_uri": ""
}

Example

Available Methods

initOkta

This method will initialize okta with config file or map data.

code ``` OktaOidc oktaOidc = OktaOidc(); ... ... Future initOkta() async { final String response = await rootBundle.loadString('assets/okta_config.json'); Map? oktaConfig = jsonDecode(response); oktaOidc.initOkta(oktaConfig); } ```

login

This method will redirect you to okta sign in page and return response or error.

code ``` oktaOidc.login().then((value) { }).catchError((onError) { }); ```

socialLogin

This method can be used for social login like linked in, google and apple sign in. Need to provide idp and idp-scope for social sign in.

code ``` oktaOidc.socialLogin({ "idp": "Add idp here...", "idp-scope": "Add scope here..." }).then((value) { }); ```

getAccessToken

This method will return access token if logged in if token is expired it will refresh the token.

code ``` oktaOidc.getAccessToken(); ```

getUserProfile

This method returns user profile data.

code ``` oktaOidc.getUserProfile(); ```

logout

This method clears the user session.

code ``` oktaOidc.logout(); ```