sparky 1.0.7 copy "sparky: ^1.0.7" to clipboard
sparky: ^1.0.7 copied to clipboard

Sparky é pacote que ajuda na construção de apis rest de forma simples com suporte a websocket a autenticação jwt.

example/sparky_example.dart

// @author viniciusddrft

import 'dart:io';
import 'package:sparky/sparky.dart';

void main() {
  final authJwt = AuthJwt(secretKey: 'senha');
  String? token;
  final login =
      RouteHttp.get('/login', middleware: (HttpRequest request) async {
    token = authJwt.generateToken({'username': 'username'});

    return Response.ok(body: '{"token":"$token"}');
  });

  final todo =
      RouteHttp.get('/todo/list', middleware: (HttpRequest request) async {
    return Response.ok(body: '[]');
  });

  final web = RouteWebSocket(
    '/websocket',
    middlewareWebSocket: (WebSocket socket) async {
      socket.add('Hello Word');
      socket.listen(
        (event) {
          print(event);
        },
        onDone: () {
          socket.close();
        },
      );
    },
  );

  Sparky.server(
    routes: [login, todo, web],
    pipelineBefore: Pipeline()
      ..add((request) async {
        if (request.requestedUri.path == '/login') {
          return null;
        } else {
          if (token != null && authJwt.verifyToken(token!)) {
            return null;
          } else {
            return Response.unauthorized(body: 'Não autorizado');
          }
        }
      }),
  );
}
13
likes
0
points
25
downloads

Publisher

unverified uploader

Weekly Downloads

Sparky é pacote que ajuda na construção de apis rest de forma simples com suporte a websocket a autenticação jwt.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

crypto

More

Packages that depend on sparky