login method
Implementation
Future<String?> login(String clientId, String clientSecret) async {
var state = Preferences.prefs?.getString("OAuth_State");
var codeVerifier = Preferences.prefs?.getString("OAuth_CodeVerifier");
if (kIsWeb && codeVerifier == null) {
codeVerifier = randomAlphaNumeric(80);
Preferences.prefs?.setString("OAuth_CodeVerifier", codeVerifier);
}
AccessTokenResponse tknResponse = await client.getTokenWithAuthCodeFlow(
clientId: clientId,
clientSecret: Uri.encodeQueryComponent(clientSecret),
scopes: ["offline_access"],
webAuthClient: baseWebAuth,
state: state,
codeVerifier: codeVerifier,
);
var refreshToken = tknResponse.refreshToken;
if (refreshToken != null) {
Preferences.prefs?.setString("RefreshToken", refreshToken);
}
Preferences.prefs?.setString("AccessToken", tknResponse.accessToken!);
return tknResponse.accessToken;
}