logIn method
return the canpass account object
final account = await FlutterCanPassLogin.getInstance().logIn(context);
Implementation
Future<CanPassAccount?> logIn(BuildContext context) async {
try {
var grant = oauth2.AuthorizationCodeGrant(
_identifier!,
Uri.parse(Constants.authorizationEndPoint),
Uri.parse(Constants.tokenEndPoint),
secret: _secret);
var authorizationUrl = grant.getAuthorizationUrl(
Uri.parse(Constants.redirectUrl),
scopes: ['email']);
var authorizedUrl = await (Utils.getInstance()
.getAuthorizedUri(authorizationUrl, context));
if(authorizedUrl== null) return null;
final _client = await grant
.handleAuthorizationResponse(authorizedUrl.queryParameters);
_accessToken = _client.credentials.accessToken;
Utils.getInstance().saveAccessTokenToCache(_accessToken);
return getCurrentAccount(_accessToken);
} catch (e, s) {
print("logIn() fail $e $s");
return null;
}
}