mirror of
https://github.com/go-vikunja/app
synced 2024-06-14 08:24:18 +00:00
fixed totp prompt
This commit is contained in:
parent
7451836cf1
commit
7391301718
|
@ -39,7 +39,7 @@ class Client {
|
||||||
void reload_ignore_certs(bool? val) {
|
void reload_ignore_certs(bool? val) {
|
||||||
ignoreCertificates = val ?? false;
|
ignoreCertificates = val ?? false;
|
||||||
HttpOverrides.global = new IgnoreCertHttpOverrides(ignoreCertificates);
|
HttpOverrides.global = new IgnoreCertHttpOverrides(ignoreCertificates);
|
||||||
if(global == null) return;
|
if(global == null || global!.currentContext == null) return;
|
||||||
VikunjaGlobal
|
VikunjaGlobal
|
||||||
.of(global!.currentContext!)
|
.of(global!.currentContext!)
|
||||||
.settingsManager
|
.settingsManager
|
||||||
|
@ -97,7 +97,7 @@ class Client {
|
||||||
headers: _headers,
|
headers: _headers,
|
||||||
body: _encoder.convert(body),
|
body: _encoder.convert(body),
|
||||||
)
|
)
|
||||||
.then(_handleResponse).catchError((Object? obj) {print(obj);});
|
.then(_handleResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<Response?> put(String url, {dynamic body}) {
|
Future<Response?> put(String url, {dynamic body}) {
|
||||||
|
|
|
@ -10,15 +10,20 @@ class UserAPIService extends APIService implements UserService {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<UserTokenPair> login(String username, password, {bool rememberMe = false, String? totp}) async {
|
Future<UserTokenPair> login(String username, password, {bool rememberMe = false, String? totp}) async {
|
||||||
var response = await client.post('/login', body: {
|
var body = {
|
||||||
'long_token': rememberMe,
|
'long_token': rememberMe,
|
||||||
'password': password,
|
'password': password,
|
||||||
'totp_passcode': totp,
|
|
||||||
'username': username,
|
'username': username,
|
||||||
});
|
};
|
||||||
|
if(totp != null) {
|
||||||
|
body['totp_passcode'] = totp;
|
||||||
|
}
|
||||||
|
var response = await client.post('/login', body: body);
|
||||||
var token = response?.body["token"];
|
var token = response?.body["token"];
|
||||||
if(token == null || response == null || response.error)
|
if(token == null || response == null || response.error)
|
||||||
return Future.value(UserTokenPair(null, null, error: response != null ? response.statusCode : 0));
|
return Future.value(UserTokenPair(null, null,
|
||||||
|
error: response != null ? response.body["code"] : 0,
|
||||||
|
errorString: response != null ? response.body["message"] : "Login error"));
|
||||||
client.configure(token: token);
|
client.configure(token: token);
|
||||||
return UserAPIService(client)
|
return UserAPIService(client)
|
||||||
.getCurrentUser()
|
.getCurrentUser()
|
||||||
|
|
|
@ -39,7 +39,8 @@ class UserTokenPair {
|
||||||
final User? user;
|
final User? user;
|
||||||
final String? token;
|
final String? token;
|
||||||
final int error;
|
final int error;
|
||||||
UserTokenPair(this.user, this.token, {this.error = 0});
|
final String errorString;
|
||||||
|
UserTokenPair(this.user, this.token, {this.error = 0, this.errorString = ""});
|
||||||
}
|
}
|
||||||
|
|
||||||
class BaseTokenPair {
|
class BaseTokenPair {
|
||||||
|
|
|
@ -193,7 +193,7 @@ class _LoginPageState extends State<LoginPage> {
|
||||||
await vGlobal.newUserService!.login(
|
await vGlobal.newUserService!.login(
|
||||||
_username, _password, rememberMe: this._rememberMe);
|
_username, _password, rememberMe: this._rememberMe);
|
||||||
|
|
||||||
if (newUser.error == 412) {
|
if (newUser.error == 1017) {
|
||||||
TextEditingController totpController = TextEditingController();
|
TextEditingController totpController = TextEditingController();
|
||||||
await showDialog(context: context, builder: (context) =>
|
await showDialog(context: context, builder: (context) =>
|
||||||
new AlertDialog(
|
new AlertDialog(
|
||||||
|
@ -213,12 +213,14 @@ class _LoginPageState extends State<LoginPage> {
|
||||||
await vGlobal.newUserService!.login(
|
await vGlobal.newUserService!.login(
|
||||||
_username, _password, rememberMe: this._rememberMe,
|
_username, _password, rememberMe: this._rememberMe,
|
||||||
totp: totpController.text);
|
totp: totpController.text);
|
||||||
|
} else if(newUser.error > 0) {
|
||||||
if (newUser.error == 0)
|
ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(newUser.errorString)));
|
||||||
vGlobal.changeUser(
|
|
||||||
newUser.user!, token: newUser.token, base: _server);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (newUser.error == 0)
|
||||||
|
vGlobal.changeUser(
|
||||||
|
newUser.user!, token: newUser.token, base: _server);
|
||||||
|
|
||||||
} catch (ex) {
|
} catch (ex) {
|
||||||
/* log(stacktrace.toString());
|
/* log(stacktrace.toString());
|
||||||
showDialog(
|
showDialog(
|
||||||
|
|
Loading…
Reference in New Issue
Block a user