Skip to content

Commit

Permalink
allow refreshing of account login
Browse files Browse the repository at this point in the history
  • Loading branch information
HarlJo committed Apr 22, 2024
1 parent 08523f7 commit d067616
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 29 deletions.
23 changes: 1 addition & 22 deletions lib/client/client_regular_account.dart
Original file line number Diff line number Diff line change
Expand Up @@ -430,7 +430,6 @@ class XRegularAccount extends ChangeNotifier {
_authHeader?.addAll({"Cookie": cookies.join(";")});
_authHeader?.addAll({"authorization": bearerToken});
_authHeader?.addAll({"x-csrf-token": csrf_token});
await SetAuthHeader(_authHeader);
//_authHeader!.addAll(userAgentHeader);
//authHeader.addAll({"Host": "api.twitter.com"});
}
Expand Down Expand Up @@ -462,9 +461,6 @@ class XRegularAccount extends ChangeNotifier {
if (_expiresAt == -1) _expiresAt = await GetTokenExpires();
if (_tokenRemaining == -1) _tokenRemaining = await GetTokenRemaining();
if (_tokenLimit == -1) _tokenLimit = await GetTokenLimit();
if (_authHeader == null) {
_authHeader = await GetAuthHeaderPref();
}
}

Future<void> GetAuthTokenLimits(
Expand Down Expand Up @@ -497,6 +493,7 @@ class XRegularAccount extends ChangeNotifier {
Future<Map<dynamic, dynamic>?> GetAuthHeader(
{required String username, required String password, String? email, BuildContext? context}) async {
try {
DeleteAllCookies();
if (_authHeader == null) await getAuthTokenFromPref();
if (!await IsTokenExpired() && _authHeader != null) return _authHeader!;
await GetGuestId(userAgentHeader);
Expand All @@ -519,11 +516,9 @@ class XRegularAccount extends ChangeNotifier {
}

Future DeleteAllCookies() async {
this.DeleteAuthHeader();
this.DeleteTokenExpires();
this.DeleteTokenLimit();
this.DeleteTokenRemaining();
_authHeader = null;
_expiresAt = -1;
_tokenLimit = -1;
_tokenRemaining = -1;
Expand All @@ -542,22 +537,6 @@ class XRegularAccount extends ChangeNotifier {
return prefs.remove("KDT_Cookie");
}

Future SetAuthHeader(Map<String, String>? header) async {
await prefs.set("auth_header", json.encode(header));
}

Future<Map<String, String>?> GetAuthHeaderPref() async {
var authHeader = await prefs.get("auth_header") ?? null;
if (authHeader != null) {
return Map.castFrom<String, dynamic, String, String>(json.decode(authHeader));
} else
return null;
}

Future DeleteAuthHeader() async {
await prefs.remove("auth_header");
}

Future SetTokenExpires(int expiresAt) async {
await prefs.set("auth_expiresAt", expiresAt);
}
Expand Down
24 changes: 17 additions & 7 deletions lib/settings/_account.dart
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,23 @@ class _SettingsAccountFragment extends State<SettingsAccountFragment> {
title: Text(data[index]['id'].toString()),
subtitle: Text(data[index]['email'].toString()),
leading: Icon(Icons.account_circle),
trailing: IconButton(
icon: Icon(Icons.delete),
onPressed: () async {
await deleteAccount(data[index]['id'].toString());
setState(() {});
},
),
trailing: Row(mainAxisSize: MainAxisSize.min, children: [
IconButton(
icon: Icon(Icons.refresh),
onPressed: () async {
await addAccount(model.prefs, data[index]['id'] as String,
data[index]['password'] as String, data[index]['email'].toString());
setState(() {});
},
),
IconButton(
icon: Icon(Icons.delete),
onPressed: () async {
await deleteAccount(data[index]['id'].toString());
setState(() {});
},
)
]),
onTap: () => showDialog(
context: context,
builder: (_) => addDialog(model,
Expand Down

0 comments on commit d067616

Please sign in to comment.