@@ -12,6 +12,7 @@ import '/src/modules/token_storage.dart';
12
12
import '/src/utilities/constants.dart' ;
13
13
import '/src/utilities/utils.dart' as utils;
14
14
import 'logto_core.dart' as logto_core;
15
+ import 'logto_core.dart' ;
15
16
16
17
export '/src/interfaces/logto_config.dart' ;
17
18
@@ -69,23 +70,20 @@ class LogtoClient {
69
70
return _oidcConfig! ;
70
71
}
71
72
72
- Future <AccessToken ?> getAccessToken (
73
- {String ? resource, List <String >? scopes}) async {
73
+ Future <AccessToken ?> getAccessToken ({String ? resource}) async {
74
74
final accessToken = await _tokenStorage.getAccessToken (resource);
75
75
76
76
if (accessToken != null ) {
77
77
return accessToken;
78
78
}
79
79
80
- final token =
81
- await _getAccessTokenByRefreshToken (resource: resource, scopes: scopes);
80
+ final token = await _getAccessTokenByRefreshToken (resource);
82
81
83
82
return token;
84
83
}
85
84
86
85
// RBAC are not supported currently, no resource specific scopes are needed
87
- Future <AccessToken ?> _getAccessTokenByRefreshToken (
88
- {String ? resource, List <String >? scopes}) async {
86
+ Future <AccessToken ?> _getAccessTokenByRefreshToken (String ? resource) async {
89
87
final refreshToken = await _tokenStorage.refreshToken;
90
88
91
89
if (refreshToken == null ) {
@@ -99,19 +97,17 @@ class LogtoClient {
99
97
final oidcConfig = await _getOidcConfig (httpClient);
100
98
101
99
final response = await logto_core.fetchTokenByRefreshToken (
102
- httpClient: httpClient,
103
- tokenEndPoint: oidcConfig.tokenEndpoint,
104
- clientId: config.appId,
105
- refreshToken: refreshToken,
106
- resource: resource,
107
- scopes : scopes );
100
+ httpClient: httpClient,
101
+ tokenEndPoint: oidcConfig.tokenEndpoint,
102
+ clientId: config.appId,
103
+ refreshToken: refreshToken,
104
+ resource: resource,
105
+ );
108
106
109
- final responseScopes = response.scope.split (' ' );
107
+ final scopes = response.scope.split (' ' );
110
108
111
109
await _tokenStorage.setAccessToken (response.accessToken,
112
- expiresIn: response.expiresIn,
113
- resource: resource,
114
- scopes: responseScopes);
110
+ expiresIn: response.expiresIn, resource: resource, scopes: scopes);
115
111
116
112
// renew refresh token
117
113
await _tokenStorage.setRefreshToken (response.refreshToken);
@@ -123,7 +119,7 @@ class LogtoClient {
123
119
await _tokenStorage.setIdToken (idToken);
124
120
}
125
121
126
- return await _tokenStorage.getAccessToken (resource, responseScopes );
122
+ return await _tokenStorage.getAccessToken (resource, scopes );
127
123
} finally {
128
124
if (_httpClient == null ) httpClient.close ();
129
125
}
@@ -148,7 +144,8 @@ class LogtoClient {
148
144
}
149
145
}
150
146
151
- Future <void > signIn (String redirectUri) async {
147
+ Future <void > signIn (String redirectUri,
148
+ [InteractionMode ? interactionMode]) async {
152
149
if (_loading) {
153
150
throw LogtoAuthException (
154
151
LogtoAuthExceptions .isLoadingError, 'Already signing in...' );
@@ -171,6 +168,7 @@ class LogtoClient {
171
168
state: _state,
172
169
resources: config.resources,
173
170
scopes: config.scopes,
171
+ interactionMode: interactionMode,
174
172
);
175
173
String ? callbackUri;
176
174
0 commit comments