inserido o shared.dart para manter o usuário logado

This commit is contained in:
Reginaldo
2023-06-23 16:12:45 -03:00
parent 086d6f3dff
commit 339e256eac
7 changed files with 195 additions and 9 deletions

View File

@@ -14,6 +14,7 @@ import 'package:rkm_educa_app/telas/tela_perfil.dart';
import 'package:rkm_educa_app/utils/cores.dart';
import 'package:rkm_educa_app/componentes/text_custom.dart';
import 'package:rkm_educa_app/utils/dimensoes.dart';
import '../servicos/shared_preferences/shared.dart';
import 'item_drawer.dart';
class DrawerCustom extends StatelessWidget {
@@ -118,10 +119,13 @@ class DrawerCustom extends StatelessWidget {
child: IconButton(
icon: Icon(LineIcons.alternateSignOut,size: 30),
onPressed: (){
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => TelaLogin()),
);
final PrefService _prefService = PrefService();
_prefService.removeCacheLogin().then((value){
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => TelaLogin()),
);
});
},
),
),

View File

@@ -0,0 +1,17 @@
import 'package:shared_preferences/shared_preferences.dart';
class PrefService{
Future createCacheLogin(String cpf, String senha)async{
SharedPreferences preferences = await SharedPreferences.getInstance();
preferences.setStringList('login', [cpf,senha]);
}
Future readCacheLogin()async{
SharedPreferences preferences = await SharedPreferences.getInstance();
final List<String>? login = preferences.getStringList('login');
return login;
}
Future removeCacheLogin()async{
SharedPreferences preferences = await SharedPreferences.getInstance();
preferences.remove('login');
}
}

View File

@@ -6,6 +6,7 @@ import 'package:rkm_educa_app/Telas/tela_situacao_escolar.dart';
import 'package:rkm_educa_app/modelos/estudante_modelo.dart';
import 'package:rkm_educa_app/telas/tela_seleciona_filho.dart';
import 'package:rkm_educa_app/utils/dimensoes.dart';
import '../servicos/shared_preferences/shared.dart';
import '../utils/cores.dart';
import '../componentes/buttom_custom.dart';
import '../componentes/input_text.dart';
@@ -34,7 +35,7 @@ class _TelaLoginState extends State<TelaLogin> {
setState(() {
loading = true;
});
conectAPI();
conectAPI(inputLogin.text.toUpperCase(),inputSenha.text.toUpperCase());
}else{
showSnackBar(context, 'Preencha sua senha', Colors.red);
}
@@ -43,8 +44,8 @@ class _TelaLoginState extends State<TelaLogin> {
}
}
conectAPI()async{
final url = 'http://192.168.18.2:8000/loginpais?CPF=${inputLogin.text.toUpperCase()}';
conectAPI(String cpf, String senha)async{
final url = 'http://192.168.18.2:8000/loginpais?CPF=$cpf';
print(url);
final response = await http.get(Uri.parse(url));
var map = json.decode(response.body);
@@ -55,12 +56,15 @@ class _TelaLoginState extends State<TelaLogin> {
});
showSnackBar(context, 'Login não cadastrado e/ou senha incorreta', Colors.red);
}else{
if(map['CPF']==inputLogin.text.toUpperCase() && map['SENHA'].toString().toUpperCase()==inputSenha.text.toUpperCase()){
if(map['CPF']==cpf && map['SENHA'].toString().toUpperCase()==senha){
setState(() {
status = 'CARREGANDO ESTUDANTE(S) ...';
});
showSnackBar(context, 'Acesso validado', Colors.green);
buscaFilhos(map['NOME'],map['PARENTESCO'],map['CIDADE']);
final PrefService _prefService = PrefService();
_prefService.createCacheLogin(map['CPF'], map['SENHA']).then((value){
buscaFilhos(map['NOME'],map['PARENTESCO'],map['CIDADE']);
});
}else{
setState(() {
loading = false;
@@ -114,6 +118,21 @@ class _TelaLoginState extends State<TelaLogin> {
}
}
@override
void initState() {
super.initState();
final PrefService _prefService = PrefService();
_prefService.readCacheLogin().then((login){
if(login!=null){
setState(() {
loading = true;
});
print(login);
conectAPI(login[0], login[1].toString().toUpperCase());
}
});
}
@override
Widget build(BuildContext context) {
return Scaffold(

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:rkm_educa_app/telas/tela_login.dart';
import 'package:rkm_educa_app/utils/cores.dart';
import '../servicos/shared_preferences/shared.dart';
import '../utils/dimensoes.dart';
class TelaSplash extends StatefulWidget {

View File

@@ -5,6 +5,8 @@
import FlutterMacOS
import Foundation
import shared_preferences_foundation
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
}

View File

@@ -105,6 +105,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.3.1"
ffi:
dependency: transitive
description:
name: ffi
sha256: ed5337a5660c506388a9f012be0288fb38b49020ce2b45fe1f8b8323fe429f99
url: "https://pub.dev"
source: hosted
version: "2.0.2"
file:
dependency: transitive
description:
name: file
sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
url: "https://pub.dev"
source: hosted
version: "6.1.4"
flutter:
dependency: "direct main"
description: flutter
@@ -136,6 +152,11 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_web_plugins:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
gainer_crypto:
dependency: "direct main"
description:
@@ -224,6 +245,46 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.8.3"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
sha256: ffbb8cc9ed2c9ec0e4b7a541e56fd79b138e8f47d2fb86815f15358a349b3b57
url: "https://pub.dev"
source: hosted
version: "2.1.11"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
sha256: "57585299a729335f1298b43245842678cb9f43a6310351b18fb577d6e33165ec"
url: "https://pub.dev"
source: hosted
version: "2.0.6"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
sha256: "1cb68ba4cd3a795033de62ba1b7b4564dace301f952de6bfb3cd91b202b6ee96"
url: "https://pub.dev"
source: hosted
version: "2.1.7"
platform:
dependency: transitive
description:
name: platform
sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc"
url: "https://pub.dev"
source: hosted
version: "2.1.4"
pointycastle:
dependency: transitive
description:
@@ -232,6 +293,70 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.7.3"
process:
dependency: transitive
description:
name: process
sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
url: "https://pub.dev"
source: hosted
version: "4.2.4"
shared_preferences:
dependency: "direct main"
description:
name: shared_preferences
sha256: "396f85b8afc6865182610c0a2fc470853d56499f75f7499e2a73a9f0539d23d0"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
shared_preferences_android:
dependency: transitive
description:
name: shared_preferences_android
sha256: "6478c6bbbecfe9aced34c483171e90d7c078f5883558b30ec3163cf18402c749"
url: "https://pub.dev"
source: hosted
version: "2.1.4"
shared_preferences_foundation:
dependency: transitive
description:
name: shared_preferences_foundation
sha256: e014107bb79d6d3297196f4f2d0db54b5d1f85b8ea8ff63b8e8b391a02700feb
url: "https://pub.dev"
source: hosted
version: "2.2.2"
shared_preferences_linux:
dependency: transitive
description:
name: shared_preferences_linux
sha256: "9d387433ca65717bbf1be88f4d5bb18f10508917a8fa2fb02e0fd0d7479a9afa"
url: "https://pub.dev"
source: hosted
version: "2.2.0"
shared_preferences_platform_interface:
dependency: transitive
description:
name: shared_preferences_platform_interface
sha256: fb5cf25c0235df2d0640ac1b1174f6466bd311f621574997ac59018a6664548d
url: "https://pub.dev"
source: hosted
version: "2.2.0"
shared_preferences_web:
dependency: transitive
description:
name: shared_preferences_web
sha256: "74083203a8eae241e0de4a0d597dbedab3b8fef5563f33cf3c12d7e93c655ca5"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
shared_preferences_windows:
dependency: transitive
description:
name: shared_preferences_windows
sha256: "5e588e2efef56916a3b229c3bfe81e6a525665a454519ca51dbcc4236a274173"
url: "https://pub.dev"
source: hosted
version: "2.2.0"
sky_engine:
dependency: transitive
description: flutter
@@ -317,5 +442,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.4"
win32:
dependency: transitive
description:
name: win32
sha256: "1414f27dd781737e51afa9711f2ac2ace6ab4498ee98e20863fa5505aa00c58c"
url: "https://pub.dev"
source: hosted
version: "5.0.4"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
sha256: ee1505df1426458f7f60aac270645098d318a8b4766d85fde75f76f2e21807d1
url: "https://pub.dev"
source: hosted
version: "1.0.0"
sdks:
dart: ">=3.0.0 <4.0.0"
flutter: ">=3.3.0"

View File

@@ -18,6 +18,7 @@ dependencies:
intl:
syncfusion_flutter_charts: ^21.2.9
brasil_fields:
shared_preferences: ^2.1.2
flutter_localizations:
sdk: flutter