authenticate method
Future<bool>
authenticate(
- String? atsign,
- AtClientPreference atClientPreference, {
- OnboardingStatus? status,
- String? jsonData,
- String? decryptKey,
Returns true
on successfully authenticating atsign
with cramSecret
/privateKey
.
if pkam is successful, encryption keys will be set for the user.
Implementation
Future<bool> authenticate(
String? atsign, AtClientPreference atClientPreference,
{OnboardingStatus? status, String? jsonData, String? decryptKey}) async {
if (atClientPreference.cramSecret == null) {
atsign = _formatAtSign(atsign);
if (atsign == null) {
return false;
}
await _decodeAndStoreToKeychain(atsign, jsonData!, decryptKey!);
atClientPreference.privateKey = await getPkamPrivateKey(atsign);
}
var result = await _init(atsign!, atClientPreference);
if (!result) {
return result;
}
if (_status != OnboardingStatus.ACTIVATE &&
status != OnboardingStatus.ACTIVATE) {
await _sync(atClientPreference, atsign);
}
result = await _atClientAuthenticator!.performInitialAuth(
atsign,
cramSecret: atClientPreference.cramSecret,
pkamPrivateKey: atClientPreference.privateKey,
);
if (result) {
var privateKey = atClientPreference.privateKey ??=
await _keyChainManager.getPkamPrivateKey(atsign);
_atClientAuthenticator!.atLookUp.privateKey = privateKey;
atClient!.getRemoteSecondary()!.atLookUp.privateKey = privateKey;
await _sync(atClientPreference, atsign);
await persistKeys(atsign);
}
return result;
}