1
0
mirror of https://github.com/go-vikunja/app synced 2024-06-01 02:06:51 +00:00

added Remember Me option when logging in which requests a long_token from the api

This commit is contained in:
benimautner 2022-04-26 00:23:58 +02:00
parent 112ff0bfbe
commit 74069180fa
3 changed files with 14 additions and 4 deletions

View File

@ -9,10 +9,11 @@ class UserAPIService extends APIService implements UserService {
UserAPIService(Client client) : super(client);
@override
Future<UserTokenPair> login(String username, password) async {
Future<UserTokenPair> login(String username, password, {bool rememberMe = false}) async {
var token = await client.post('/login', body: {
'username': username,
'password': password
'password': password,
'long_token': rememberMe
}).then((response) => response.body['token']);
return UserAPIService(Client(token, client.base))
.getCurrentUser()

View File

@ -14,6 +14,7 @@ class LoginPage extends StatefulWidget {
class _LoginPageState extends State<LoginPage> {
final _formKey = GlobalKey<FormState>();
bool _loading = false;
bool _rememberMe = false;
final _serverController = TextEditingController();
final _usernameController = TextEditingController();
@ -98,6 +99,14 @@ class _LoginPageState extends State<LoginPage> {
obscureText: true,
),
),
Padding(
padding: vStandardVerticalPadding,
child: CheckboxListTile(
value: _rememberMe,
onChanged: (value) => setState( () =>_rememberMe = value),
title: Text("Remember me"),
),
),
Builder(
builder: (context) => FancyButton(
onPressed: !_loading
@ -140,7 +149,7 @@ class _LoginPageState extends State<LoginPage> {
if(_server.endsWith("/"))
_server = _server.substring(0,_server.length-1);
var newUser =
await vGlobal.newUserService(_server).login(_username, _password);
await vGlobal.newUserService(_server).login(_username, _password, rememberMe: this._rememberMe);
vGlobal.changeUser(newUser.user, token: newUser.token, base: _server);
} catch (ex) {
showDialog(

View File

@ -105,7 +105,7 @@ abstract class TaskService {
}
abstract class UserService {
Future<UserTokenPair> login(String username, password);
Future<UserTokenPair> login(String username, password, {bool rememberMe = false});
Future<UserTokenPair> register(String username, email, password);
Future<User> getCurrentUser();
}