authenticate method
Future<UserSession>
authenticate({
- AuthorizationTokenResponse? tokenResponse,
- required String clientID,
- required AuthEndpointsData authEndpointsData,
- required DioClient microsoftDioClient,
- Options? getUserDetailsOptions,
Implementation
Future<UserSession> authenticate({
AuthorizationTokenResponse? tokenResponse,
required String clientID,
required AuthEndpointsData authEndpointsData,
required DioClient microsoftDioClient,
Options? getUserDetailsOptions,
}) async {
final TokenResponse? freshToken = await _getFreshTokens(
clientID: clientID,
authEndpointsData: authEndpointsData,
);
if (freshToken != null) {
return await _setUserSession(
tokenResponse: freshToken,
microsoftDioClient: microsoftDioClient,
userInfoEndpoint: authEndpointsData.userInfoEndpoint,
getUserDetailsOptions: getUserDetailsOptions,
);
} else {
AuthorizationTokenResponse? authTokenResponse;
if (tokenResponse == null) {
authTokenResponse = await _authProvider.getAuthTokens(
clientID: clientID,
authEndpointsData: authEndpointsData,
);
} else {
authTokenResponse = tokenResponse;
}
return await _setUserSession(
tokenResponse: authTokenResponse,
microsoftDioClient: microsoftDioClient,
userInfoEndpoint: authEndpointsData.userInfoEndpoint,
getUserDetailsOptions: getUserDetailsOptions,
);
}
}