@@ -232,9 +232,13 @@ private void request(string path, LoginParams loginParams = null, Dictionary<st
232232 public void setResultUrl ( Uri uri )
233233 {
234234 string hash = uri . Fragment ;
235+ #if ! UNITY_EDITOR && UNITY_WEBGL
235236 if ( hash == null || hash . Length == 0 )
236237 return ;
237-
238+ #else
239+ if ( hash == null )
240+ throw new UserCancelledException ( ) ;
241+ #endif
238242 hash = hash . Remove ( 0 , 1 ) ;
239243
240244 Dictionary < string , string > queryParameters = Utils . ParseQuery ( uri . Query ) ;
@@ -288,7 +292,6 @@ public void login(LoginParams loginParams)
288292 public void logout ( Dictionary < string , object > extraParams )
289293 {
290294 sessionTimeOutAPI ( ) ;
291- request ( "logout" , extraParams : extraParams ) ;
292295 }
293296
294297 public void logout ( Uri redirectUrl = null , string appState = null )
@@ -315,21 +318,6 @@ private void authorizeSession()
315318 {
316319 var shareMetadata = Newtonsoft . Json . JsonConvert . DeserializeObject < ShareMetadata > ( response . message ) ;
317320
318- KeyStoreManagerUtils . savePreferenceData (
319- KeyStoreManagerUtils . EPHEM_PUBLIC_Key ,
320- shareMetadata . ephemPublicKey
321- ) ;
322-
323- KeyStoreManagerUtils . savePreferenceData (
324- KeyStoreManagerUtils . IV_KEY ,
325- shareMetadata . iv
326- ) ;
327-
328- KeyStoreManagerUtils . savePreferenceData (
329- KeyStoreManagerUtils . MAC ,
330- shareMetadata . mac
331- ) ;
332-
333321 var aes256cbc = new AES256CBC (
334322 sessionId ,
335323 shareMetadata . ephemPublicKey ,
@@ -367,59 +355,59 @@ private void sessionTimeOutAPI()
367355 string sessionId = KeyStoreManagerUtils . getPreferencesData ( KeyStoreManagerUtils . SESSION_ID ) ;
368356 if ( ! string . IsNullOrEmpty ( sessionId ) )
369357 {
370- var ephemKey = KeyStoreManagerUtils . getPreferencesData ( KeyStoreManagerUtils . EPHEM_PUBLIC_Key ) ;
371- var ivKey = KeyStoreManagerUtils . getPreferencesData ( KeyStoreManagerUtils . IV_KEY ) ;
372- var mac = KeyStoreManagerUtils . getPreferencesData ( KeyStoreManagerUtils . MAC ) ;
373-
374- if ( string . IsNullOrEmpty ( ephemKey ) == true && string . IsNullOrEmpty ( ivKey ) == true ) return ;
375-
376- var aes256cbc = new AES256CBC (
377- sessionId ,
378- ephemKey ,
379- ivKey
380- ) ;
381-
382-
383- var encryptedData = aes256cbc . encrypt ( System . Text . Encoding . UTF8 . GetBytes ( "" ) ) ;
384- var encryptedMetadata = new ShareMetadata ( )
358+ var pubKey = KeyStoreManagerUtils . getPubKey ( sessionId ) ;
359+ StartCoroutine ( Web3AuthApi . getInstance ( ) . authorizeSession ( pubKey , ( response =>
385360 {
386- iv = ivKey ,
387- ephemPublicKey = ephemKey ,
388- ciphertext = encryptedData ,
389- mac = mac
390- } ;
391- var jsonData = JsonConvert . SerializeObject ( encryptedMetadata ) ;
392-
393- StartCoroutine ( Web3AuthApi . getInstance ( ) . logout (
394- new LogoutApiRequest ( )
361+ if ( response != null )
395362 {
396- key = KeyStoreManagerUtils . getPubKey ( sessionId ) ,
397- data = jsonData ,
398- signature = KeyStoreManagerUtils . getECDSASignature (
363+ var shareMetadata = Newtonsoft . Json . JsonConvert . DeserializeObject < ShareMetadata > ( response . message ) ;
364+
365+ var aes256cbc = new AES256CBC (
399366 sessionId ,
400- jsonData
401- ) ,
402- timeout = 1
403- } , result =>
404- {
405- if ( result != null )
367+ shareMetadata . ephemPublicKey ,
368+ shareMetadata . iv
369+ ) ;
370+
371+ var encryptedData = aes256cbc . encrypt ( System . Text . Encoding . UTF8 . GetBytes ( "" ) ) ;
372+ var encryptedMetadata = new ShareMetadata ( )
406373 {
407- try
374+ iv = shareMetadata . iv ,
375+ ephemPublicKey = shareMetadata . ephemPublicKey ,
376+ ciphertext = encryptedData ,
377+ mac = shareMetadata . mac
378+ } ;
379+ var jsonData = JsonConvert . SerializeObject ( encryptedMetadata ) ;
380+
381+ StartCoroutine ( Web3AuthApi . getInstance ( ) . logout (
382+ new LogoutApiRequest ( )
408383 {
409- KeyStoreManagerUtils . deletePreferencesData ( KeyStoreManagerUtils . EPHEM_PUBLIC_Key ) ;
410- KeyStoreManagerUtils . deletePreferencesData ( KeyStoreManagerUtils . IV_KEY ) ;
411- KeyStoreManagerUtils . deletePreferencesData ( KeyStoreManagerUtils . MAC ) ;
412- KeyStoreManagerUtils . deletePreferencesData ( KeyStoreManagerUtils . SESSION_ID ) ;
413- KeyStoreManagerUtils . deletePreferencesData ( web3AuthOptions . loginConfig ? . Values . First ( ) ? . verifier ) ;
414- }
415- catch ( Exception ex )
384+ key = KeyStoreManagerUtils . getPubKey ( sessionId ) ,
385+ data = jsonData ,
386+ signature = KeyStoreManagerUtils . getECDSASignature (
387+ sessionId ,
388+ jsonData
389+ ) ,
390+ timeout = 1
391+ } , result =>
416392 {
417- Debug . LogError ( ex . Message ) ;
393+ if ( result != null )
394+ {
395+ try
396+ {
397+ KeyStoreManagerUtils . deletePreferencesData ( KeyStoreManagerUtils . SESSION_ID ) ;
398+ KeyStoreManagerUtils . deletePreferencesData ( web3AuthOptions . loginConfig ? . Values . First ( ) ? . verifier ) ;
399+
400+ this . Enqueue ( ( ) => this . onLogout ? . Invoke ( ) ) ;
401+ }
402+ catch ( Exception ex )
403+ {
404+ Debug . LogError ( ex . Message ) ;
405+ }
406+ }
418407 }
419- }
408+ ) ) ;
420409 }
421- ) ) ;
422-
410+ } ) ) ) ;
423411 }
424412 }
425413
0 commit comments