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 {
// 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");
try {
@ -21,6 +22,7 @@ class AuthService {
body: {
"username": username,
"password": password,
"remember_me": rememberMe.toString()
},
);

View File

@ -18,6 +18,7 @@ class _LoginDemoState extends State<LoginDemo> with ShowAlertDialog {
TextEditingController inputPseudo = TextEditingController();
TextEditingController inputPassword = TextEditingController();
final AuthService _authService = AuthService();
bool _rememberMe = false;
Future<void> _login(BuildContext context) async {
final pseudo = inputPseudo.text;
@ -28,7 +29,8 @@ class _LoginDemoState extends State<LoginDemo> with ShowAlertDialog {
return;
}
bool success = await _authService.login(pseudo, password);
bool success =
await _authService.login(pseudo, password, rememberMe: _rememberMe);
if (success) {
Navigator.push(
@ -53,7 +55,6 @@ class _LoginDemoState extends State<LoginDemo> with ShowAlertDialog {
Future<void> _checkLoginStatus() async {
bool loggedIn = await _authService.isLoggedIn();
print("logged status : ${loggedIn}");
if (loggedIn) {
Navigator.push(
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(
onPressed: () {
Navigator.push(context,