silent_auth 0.0.7

  • README.md
  • CHANGELOG.md
  • Installing
  • Versions
  • 75

silent_auth

silent_auth is a package that enables seamless user experience for single page web applications using OAuth 2.0 - OpenID Connect with the implicit flow. More information can be found at Silent Authentication. In summary, this package

  • Performs login by redirecting user to an identity server's authorize endpoint
  • Performs logout by redirecting user to an identity server's end session endpoint
  • Periodically renews access/ID tokens in the background using iframe

Usage

This package is usually used together with an idle tracking library/package such as idle_tracker.

import 'package:silent_auth/silent_auth.dart';
import 'package:idle_tracker/idle_tracker.dart';

final silentAuth = new SilentAuth(
    baseIdentityUri: 'https://your-identity-server.com/connect',
    clientId: 'admin',
    scope: 'openid api',
    redirectUri: 'http://localhost:12345/index.html'
    silentRedirectUri: 'http://localhost:12345/silent_auth.html',
    onRenew: (auth) => requestHeaders['Authorization'] = 'Bearer ${auth.accessToken}');

// Request headers for making API calls.
final requestHeaders = {
  'Accept': 'application/json',
  'Content-Type': 'application/json; charset=UTF-8',
};
  
void logIn() {
  // Pre-login tasks may be done here.
  
  silentAuth.logIn();
}

void logOut() {
    // Pre-logout tasks may be done here.
    
    silentAuth.logOut();
}

void loadData() {
    // Make some API call using [requestHeaders].
}
    
void main() {
  // Initializes silent authentication.
  silentAuth.init();
  
  // If the access token doesn't exist or has expired, redirect user to the login page.
  if (!silentAuth.isAccessTokenValid) {
    logIn();
    return;
  }
  
  // Set up an idle tracker to automatically log the user out after 30
  // minutes of inactivity.
  new IdleTracker(
      timeout: const Duration(minutes: 30),
      startsAsIdle: true,
      onIdle: logOut)
    ..start();
  
  loadData();
}

Features and bugs

Please file feature requests and bugs at the issue tracker.

Changelog

0.0.7

  • BREAKING CHANGE: This version requires Dart 2.0.0 or later
  • Fixed a bug where accessing Token.header will throw
  • Added some tests

0.0.6

  • Fixed a bug that happens when logOut is called due to the new Token type

0.0.5

  • refactoring: utils.dart was moved to /lib and no longer contains functions used internally
  • Added class Token, which represents an access or ID token
  • BREAKING CHANGE: SilentAuth.accessToken and SilentAuth.idToken are now of type Token rather than String.

0.0.4

  • Fixed a bug in which the token renewal is not properly scheduled the first time

0.0.3

  • Fixed a bug causing post_logout_redirect_uri not to be displayed in the logged-out page

0.0.2

  • Fixed a bug causing utils.callEndpoint to fail when compiled to JS

0.0.1

  • Initial version

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  silent_auth: ^0.0.7

2. Install it

You can install packages from the command line:

with pub:


$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:silent_auth/silent_auth.dart';
  
Version Uploaded Documentation Archive
0.0.7 Sep 10, 2018 Go to the documentation of silent_auth 0.0.7 Download silent_auth 0.0.7 archive
0.0.6 Jul 9, 2018 Go to the documentation of silent_auth 0.0.6 Download silent_auth 0.0.6 archive
0.0.5 Jul 7, 2018 Go to the documentation of silent_auth 0.0.5 Download silent_auth 0.0.5 archive
0.0.4 Dec 22, 2017 Go to the documentation of silent_auth 0.0.4 Download silent_auth 0.0.4 archive
0.0.3 Dec 22, 2017 Go to the documentation of silent_auth 0.0.3 Download silent_auth 0.0.3 archive
0.0.2 Dec 4, 2017 Go to the documentation of silent_auth 0.0.2 Download silent_auth 0.0.2 archive
0.0.1 Dec 3, 2017 Go to the documentation of silent_auth 0.0.1 Download silent_auth 0.0.1 archive
Popularity:
Describes how popular the package is relative to other packages. [more]
59
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
80
Overall:
Weighted score of the above. [more]
75
Learn more about scoring.

We analyzed this package on Oct 26, 2018, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.0.0
  • pana: 0.12.5

Platforms

Detected platforms: web

Primary library: package:silent_auth/silent_auth.dart with components: html, js.

Health suggestions

Format lib/silent_auth.dart.

Run dartfmt to format lib/silent_auth.dart.

Maintenance suggestions

Maintain an example. (-10 points)

Create a short demo in the example/ directory to show how to use this package. Common file name patterns include: main.dart, example.dart or you could also use silent_auth.dart.

Package is pre-v0.1 release. (-10 points)

While there is nothing inherently wrong with versions of 0.0.*, it usually means that the author is still experimenting with the general direction of the API.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.0.0 <3.0.0
Dev dependencies
build_runner ^0.10.0
build_web_compilers ^0.4.0
test ^1.3.0