react-native-login-keycloak-sebrae

1.0.2 • Public • Published

react-native-login-keycloak-sebrae

This is a fork of ak1394's React-Native-Login module. It's a version that I'm planning to maintenance more than it's been with ak1394.

Documentation

Install

npm i --save react-native-login-keycloak-sebrae

Usage

App configuration

Please configure Linking module, including steps for handling Universal links (This might get changed due to not being able to close the tab on leave, ending up with a lot of tabs in the browser).

Also, add the applinks: entry to the Associated Domains Capability of your app.

Imports

import Login from 'react-native-login-keycloak-sebrae';

Checking if tokens are saved on the device

const gatheredTokens = await Login.getTokens();
console.log(gatheredTokens);
 
// Prints:
//
// { access_token: '...', refresh_token: '...', id_token: '...', ...}
// OR
// undefined

Login

 
const config = {
  url: 'https://<KEYCLOAK_HOST>/auth',
  realm: '<REALM NAME>',
  clientId: '<CLIENT ID>',
  redirectUri: 'https://<REDIRECT HOST>/success.html',
  appsiteUri: 'https://<APPSITE HOST>/app.html',
  kcIdpHint: 'facebook', // *optional*
};
 
Login.startLoginProcess(config).then(tokens => {
  console.log(tokens);
});
 
// Prints:
//
// { access_token: '...', refresh_token: '...', id_token: '...', ...}

Logging in by the startLoginProcess function will save it in the AsyncStorage, whereas after its been successful, getTokens will get the most recent tokens that are saved and you can then use it to authenticate against a backend.

Refreshing the token

const refreshedTokens = await Login.refreshToken();
console.log(refreshTokens);
// Prints:
//
// { access_token: '...', refresh_token: '...', id_token: '...', ...}
// OR
// undefined

Retrieving logged in user info

const loggedInUser = await Login.retrieveUserInfo();
console.log(loggedInUser);
 
// Prints:
//
// { sub: '...',name: '... ',preferred_username: '...',given_name: '...' }
 
// OR
// undefined

Logout

Login.logoutKc();

Removes stored tokens. Will also do a Keycloak call to log the user out. Returns true on logout, else false. Subsequent calls to Login.tokens() will return null.

If you got any improvements feel free to make a pull request or suggestion.

Package Sidebar

Install

npm i react-native-login-keycloak-sebrae

Weekly Downloads

4

Version

1.0.2

License

MIT

Unpacked Size

16.9 kB

Total Files

7

Last publish

Collaborators

  • pedro.dias