🔏Authentication

authentication.dart

Este arquivo tem funcionalidades muito importantes para os nossos aplicativos, é com ela que temos a possibilidade de manter a sessão do nosso usuário logado na aplicação, com isso podendo redirecionar para as telas corretas e realizar chamadas para o backend.

Fazendo o uso do plugin shared_preferencesarrow-up-right, conseguimos salvar o token do usuário logado, remover caso necessário, requisitar este token para algum uso, e verificar se existe algum token salvo no momento.

O código utilizado é o seguinte:

import 'package:shared_preferences/shared_preferences.dart';

class Authentication {
  static const String _tokenKey = "token";

  static Future<bool> authenticated() async {
    final prefs = await SharedPreferences.getInstance();
    return prefs.getString(_tokenKey) != null;
  }

  static void logout() async {
    final prefs = await SharedPreferences.getInstance();
    prefs.remove(_tokenKey);
  }

  static void saveToken(String token) async {
    final prefs = await SharedPreferences.getInstance();
    prefs.setString(_tokenKey, token);
  }

  static Future<String> getToken() async {
    final prefs = await SharedPreferences.getInstance();
    return prefs.getString(_tokenKey)!;
  }
}

Quando o usuário faz o login na aplicação, devemos salvar o token dele, utilizando:

Com isso, sempre que fizermos a requisição da chamada await Authentication.authenticated(), a resposta vai ser true, pois existe um token salvo para o usuário no celular que ele está.

A função de logout, apenas vai remover este token salvo, fazendo com que quando requisitado o authenticated a resposta seja false.

E o getToken serve para retornar o token salvo, caso exista, para o uso que desejar.

Esta manutenção do token do usuário serve principalmente para dois pontos: - Checagem na splash screen, para saber se o usuário deve ser redirecionado para a tela de autenticação ou pode acessar o aplicativo - Usar o token para mandar nas requisições da API.

Last updated