signInWithServerCredential method
Future<String?>
signInWithServerCredential(
- BuildContext context, {
- required AuthenticatedUser user,
- required String idToken,
- required SignInWithServerAPIAction signInAPI,
After authenticated the user, redirect to a Server API with the idToken to retrieve Server-specific credentials (bearer, cookies,..). Once completed we sign the user in, and save the credentials to ${auth.user.data}
Implementation
Future<String?> signInWithServerCredential(BuildContext context,
{required AuthenticatedUser user,
required String idToken,
required SignInWithServerAPIAction signInAPI}) async {
Response? response = await InvokeAPIController().executeWithContext(
context, signInAPI,
additionalInputs: {'idToken': idToken, 'user': user});
if (response != null) {
// eval the server credentials and save to user object
if (signInAPI.signInCredentials != null) {
ScopeManager? scopeManager =
ScreenController().getScopeManager(context);
if (scopeManager != null) {
ScopeManager tempScope =
scopeManager.createChildScope(ephemeral: true);
tempScope.dataContext
.addDataContextById('response', APIResponse(response: response));
Map credentials = {};
signInAPI.signInCredentials!.forEach((key, value) {
credentials[key] = tempScope.dataContext.eval(value);
});
user.setServerCredentials(credentials);
}
}
return await _signInLocally(context, user: user);
}
return null;
}