diff --git a/example/example.dart b/example/example.dart new file mode 100644 index 00000000..e960b569 --- /dev/null +++ b/example/example.dart @@ -0,0 +1,37 @@ +import 'dart:async'; +import 'package:angel_auth/angel_auth.dart'; +import 'package:angel_framework/angel_framework.dart'; + +main() async { + var app = new Angel(); + var auth = new AngelAuth(); + + auth.serializer = (user) => user.id; + + auth.deserializer = (id) => fetchAUserByIdSomehow(id); + + // Middleware to decode JWT's and inject a user object... + app.fallback(auth.decodeJwt); + + auth.strategies['local'] = new LocalAuthStrategy((username, password) { + // Retrieve a user somehow... + // If authentication succeeds, return a User object. + // + // Otherwise, return `null`. + }); + + app.post('/auth/local', auth.authenticate('local')); + + var http = new AngelHttp(app); + await http.startServer('127.0.0.1', 3000); + + print('Listening at http://127.0.0.1:3000'); +} + +class User { + String id, username, password; +} + +Future fetchAUserByIdSomehow(id) async { + // Fetch a user somehow... +} diff --git a/pubspec.yaml b/pubspec.yaml index 3ce68300..481b43db 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: angel_auth -description: A complete authentication plugin for Angel. -version: 2.0.0 +description: A complete authentication plugin for Angel. Includes support for stateless JWT tokens, Basic Auth, and more. +version: 2.0.0+1 author: Tobe O homepage: https://github.com/angel-dart/angel_auth environment: