Frontier Banner

Frontier OpenID

Frontier OpenID is the strategy that provides OpenID Connect authentication for Frontier.

Get Started | Pub.dev

Why Frontier OpenID?

Frontier OpenID is a simple strategy that provides OpenID Connect authentication. It is designed to be easy to use and to integrate with your app.

Installation

Use the following to add the package to your pubspec.yaml file:

dart pub add frontier_openid

Usage

import 'dart:io';

import 'package:frontier/frontier.dart';
import 'package:frontier_openid/frontier_openid.dart';

void main() {
  final frontier = Frontier();

  frontier.use(OpenIdStrategy(
    OpenIdStrategyOptions(
      issuer: Issuer.google,
      clientId: 'client-id',
    ),
    (options, result, done) async {
      done((result as OpenIdResponse).userInfo.name != null);
    },
  ));

  final server = HttpServer.bind(InternetAddress.loopbackIPv4, 8080);

  server.then((server) {
    server.listen((HttpRequest request) async {
      final headers = <String, String>{};
      request.headers.forEach((key, values) {
        headers[key] = values.join(',');
      });
      final result = await frontier.authenticate(
        'jwt',
        StrategyRequest(headers: headers),
      );
      if (result) {
        request.response.write('Authenticated');
      } else {
        request.response.statusCode = HttpStatus.unauthorized;
        request.response.write('Not Authenticated');
      }
    });
  });
}

License

Frontier OpenID is licensed under the MIT License.

Libraries

frontier_openid