add remember me #40

Merged
v4l3n71n merged 1 commits from feature/persist-connect into main 2025-03-06 22:38:26 +00:00
2 changed files with 15 additions and 3 deletions

View File

@ -8,7 +8,8 @@ import '../pages/LoginDemo.dart';
class AuthService { class AuthService {
// Login with username and password // Login with username and password
Future<bool> login(String username, String password) async { Future<bool> login(String username, String password,
{bool rememberMe = false}) async {
final url = Uri.parse("${globals.api}/token"); final url = Uri.parse("${globals.api}/token");
try { try {
@ -21,6 +22,7 @@ class AuthService {
body: { body: {
"username": username, "username": username,
"password": password, "password": password,
"remember_me": rememberMe.toString()
}, },
); );

View File

@ -18,6 +18,7 @@ class _LoginDemoState extends State<LoginDemo> with ShowAlertDialog {
TextEditingController inputPseudo = TextEditingController(); TextEditingController inputPseudo = TextEditingController();
TextEditingController inputPassword = TextEditingController(); TextEditingController inputPassword = TextEditingController();
final AuthService _authService = AuthService(); final AuthService _authService = AuthService();
bool _rememberMe = false;
Future<void> _login(BuildContext context) async { Future<void> _login(BuildContext context) async {
final pseudo = inputPseudo.text; final pseudo = inputPseudo.text;
@ -28,7 +29,8 @@ class _LoginDemoState extends State<LoginDemo> with ShowAlertDialog {
return; return;
} }
bool success = await _authService.login(pseudo, password); bool success =
await _authService.login(pseudo, password, rememberMe: _rememberMe);
if (success) { if (success) {
Navigator.push( Navigator.push(
@ -53,7 +55,6 @@ class _LoginDemoState extends State<LoginDemo> with ShowAlertDialog {
Future<void> _checkLoginStatus() async { Future<void> _checkLoginStatus() async {
bool loggedIn = await _authService.isLoggedIn(); bool loggedIn = await _authService.isLoggedIn();
print("logged status : ${loggedIn}");
if (loggedIn) { if (loggedIn) {
Navigator.push( Navigator.push(
context, MaterialPageRoute(builder: (_) => ListItemMenu())); context, MaterialPageRoute(builder: (_) => ListItemMenu()));
@ -109,6 +110,15 @@ class _LoginDemoState extends State<LoginDemo> with ShowAlertDialog {
), ),
), ),
), ),
CheckboxListTile(
title: Text("Se souvenir de moi"),
value: _rememberMe,
onChanged: (newValue) {
setState(() {
_rememberMe = newValue ?? false;
});
},
),
TextButton( TextButton(
onPressed: () { onPressed: () {
Navigator.push(context, Navigator.push(context,