This repository was archived by the owner on Mar 18, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 4 files changed +64
-17
lines changed
android/src/main/java/com/reactnativecryptr Expand file tree Collapse file tree 4 files changed +64
-17
lines changed Original file line number Diff line number Diff line change @@ -104,6 +104,17 @@ class CryptrModule(reactContext: ReactApplicationContext) : ReactContextBaseJava
104
104
}
105
105
}
106
106
107
+ @ReactMethod(isBlockingSynchronousMethod = true )
108
+ fun removeRefresh (successCallback : Callback , errorCallback : Callback ) {
109
+ val editor: SharedPreferences .Editor = this .sharedPreferences.edit();
110
+ editor.remove(REFRESH_TOKEN_KEY );
111
+ if (editor.commit()) {
112
+ successCallback.invoke(" Refresh removed" );
113
+ } else {
114
+ errorCallback.invoke(" Error while removing refresh" );
115
+ }
116
+ }
117
+
107
118
@ReactMethod(isBlockingSynchronousMethod = true )
108
119
fun startSecuredView (
109
120
uri : String ,
Original file line number Diff line number Diff line change @@ -62,6 +62,27 @@ - (void)openInSafari:(NSURL *)URL {
62
62
}
63
63
}
64
64
65
+ RCT_EXPORT_METHOD (removeRefresh:(RCTResponseSenderBlock)callback
66
+ errorCallback:(RCTResponseSenderBlock)errorCallback)
67
+ {
68
+ NSDictionary * removeQuery = @{
69
+ (__bridge id )kSecClass : (__bridge id )kSecClassGenericPassword ,
70
+ (__bridge id )kSecAttrAccount : REFRESH_TOKEN_KEY,
71
+ (__bridge id )kSecReturnData : (__bridge id )kCFBooleanTrue
72
+ };
73
+
74
+ OSStatus removeStatus = SecItemDelete ((__bridge CFDictionaryRef)removeQuery);
75
+
76
+ if (removeStatus == noErr) {
77
+ callback (@[@" Refresh removed" ]);
78
+ }
79
+
80
+ else {
81
+ NSError * error = [NSError errorWithDomain: [[NSBundle mainBundle ] bundleIdentifier ] code: removeStatus userInfo: nil ];
82
+ errorCallback (@[@" An error occured while removing value" ]);
83
+ }
84
+ }
85
+
65
86
RCT_EXPORT_METHOD (getRefresh:(RCTResponseSenderBlock)callback
66
87
errorCallback:(RCTResponseSenderBlock)errorCallback)
67
88
{
Original file line number Diff line number Diff line change @@ -16,6 +16,10 @@ interface CryptrInterface {
16
16
successCallback ?: ( data : any ) => any ,
17
17
errorCallback ?: ( error : any ) => any
18
18
) => any ;
19
+ removeRefresh : (
20
+ successCallback ?: ( data : any ) => any ,
21
+ errorCallback ?: ( error : any ) => any
22
+ ) => any ;
19
23
setRefresh : (
20
24
refreshToken : string ,
21
25
successCallback ?: ( data : any ) => any ,
Original file line number Diff line number Diff line change @@ -164,26 +164,33 @@ const CryptrProvider: React.FC<ProviderProps> = ({
164
164
const { revoked_at, slo_code } = json ;
165
165
if ( revoked_at ) {
166
166
setUnAuthenticated ( ) ;
167
- if ( slo_code ) {
168
- let sloUrl = sloAfterRevokeTokenUrl ( config , slo_code ) ;
169
- if ( Platform . OS === 'android' ) {
170
- Cryptr . startSecuredView (
171
- sloUrl ,
172
- ( _data : any ) => {
173
- callback && callback ( json ) ;
174
- } ,
175
- ( error : any ) => {
176
- setError ( error ) ;
177
- errorCallback && errorCallback ( error ) ;
167
+ Cryptr . removeRefresh (
168
+ ( _data : any ) => {
169
+ if ( slo_code ) {
170
+ let sloUrl = sloAfterRevokeTokenUrl ( config , slo_code ) ;
171
+ if ( Platform . OS === 'android' ) {
172
+ Cryptr . startSecuredView (
173
+ sloUrl ,
174
+ ( _d : any ) => {
175
+ callback && callback ( json ) ;
176
+ } ,
177
+ ( error : any ) => {
178
+ setError ( error ) ;
179
+ errorCallback && errorCallback ( error ) ;
180
+ }
181
+ ) ;
178
182
}
179
- ) ;
183
+ } else {
184
+ if ( callback ) callback ( json ) ;
185
+ }
186
+ } ,
187
+ ( error : any ) => {
188
+ errorCallback && errorCallback ( error ) ;
180
189
}
181
- } else {
182
- if ( callback ) callback ( json ) ;
183
- }
190
+ ) ;
184
191
} else {
185
192
setUnloading ( ) ;
186
- if ( callback ) callback ( json ) ;
193
+ if ( errorCallback ) errorCallback ( json ) ;
187
194
}
188
195
} ;
189
196
@@ -259,7 +266,11 @@ const CryptrProvider: React.FC<ProviderProps> = ({
259
266
}
260
267
} ,
261
268
( error : any ) => {
262
- setError ( error ) ;
269
+ dispatch ( {
270
+ type : CryptrReducerActionKind . UNAUTHENTICATED ,
271
+ payload : { error : error } ,
272
+ } ) ;
273
+ errorCallback && errorCallback ( error ) ;
263
274
}
264
275
) ;
265
276
} ;
You can’t perform that action at this time.
0 commit comments