@@ -330,12 +330,11 @@ FaFp+DyAe+b4nDwuJaW2LURbr8AEZga7oQj0uYxcYw==\n\
330
330
331
331
var algorithmRadios = $ ( 'input[name="algorithm"]' ) ,
332
332
lastRestoredToken ;
333
+ var tokenRadios = $ ( 'input[name="token-type"]' ) ;
333
334
334
335
function setJSONEditorContent ( jsonEditor , decodedJSON , selector ) {
335
336
jsonEditor . off ( 'change' , refreshTokenEditor ) ;
336
337
337
-
338
-
339
338
if ( decodedJSON . result !== null && decodedJSON . result !== undefined ) {
340
339
jsonEditor . setValue ( decodedJSON . result ) ;
341
340
} else {
@@ -385,23 +384,18 @@ FaFp+DyAe+b4nDwuJaW2LURbr8AEZga7oQj0uYxcYw==\n\
385
384
if ( window . matchMedia ( '(min-width: 768px)' ) . matches ) {
386
385
autoHeightInput ( ) ;
387
386
}
388
-
389
387
}
390
388
391
389
function selectDetectedAlgorithm ( alg ) {
392
390
var $algRadio = $ ( '.algorithm input[value="' + alg + '"]' ) ;
393
391
$algRadio . prop ( 'checked' , true ) ;
394
392
395
393
fireEvent ( $algRadio . get ( 0 ) ) ;
396
-
397
-
398
394
}
399
395
400
396
function saveToStorage ( jwt ) {
401
397
// Save last valid jwt value for refresh
402
398
safeLocalStorageSetItem ( "jwtValue" , jwt ) ;
403
-
404
-
405
399
}
406
400
407
401
function loadFromStorage ( cb ) {
@@ -452,8 +446,6 @@ FaFp+DyAe+b4nDwuJaW2LURbr8AEZga7oQj0uYxcYw==\n\
452
446
}
453
447
tokenEditor . on ( 'change' , tokenEditorOnChangeListener ) ;
454
448
fireEvent ( secretElement ) ;
455
-
456
-
457
449
}
458
450
459
451
function getFirstElementByClassName ( selector ) {
@@ -502,8 +494,6 @@ FaFp+DyAe+b4nDwuJaW2LURbr8AEZga7oQj0uYxcYw==\n\
502
494
isBase64
503
495
) ;
504
496
505
-
506
-
507
497
var error = result . error ;
508
498
result = result . result ;
509
499
if ( ! error && result ) {
@@ -515,8 +505,6 @@ FaFp+DyAe+b4nDwuJaW2LURbr8AEZga7oQj0uYxcYw==\n\
515
505
$ ( signatureElement ) . addClass ( 'invalid-token' ) ;
516
506
signatureElement . innerHTML = '<i class="icon-budicon-501"></i> invalid signature' ;
517
507
}
518
-
519
-
520
508
}
521
509
522
510
function getKey ( algorithm , action ) {
@@ -529,8 +517,6 @@ FaFp+DyAe+b4nDwuJaW2LURbr8AEZga7oQj0uYxcYw==\n\
529
517
} else {
530
518
return action === 'sign' ? privateKeyElement . val ( ) : publicKeyElement . val ( ) ;
531
519
}
532
-
533
-
534
520
}
535
521
536
522
function getAlgorithm ( ) {
@@ -547,30 +533,43 @@ FaFp+DyAe+b4nDwuJaW2LURbr8AEZga7oQj0uYxcYw==\n\
547
533
. filter ( '.' + algorithm )
548
534
. show ( ) ;
549
535
550
- if ( getTrimmedValue ( tokenEditor ) === DEFAULT_HS_TOKEN &&
536
+ if ( getTokenType ( ) === 'id_token' && getTrimmedValue ( tokenEditor ) === DEFAULT_HS_TOKEN &&
551
537
algorithm === 'RS256' ) {
552
538
setDefaultsForRSA ( ) ;
553
- } else if ( getTrimmedValue ( tokenEditor ) === DEFAULT_RS_TOKEN &&
539
+ } else if ( getTokenType ( ) === 'id_token' && getTrimmedValue ( tokenEditor ) === DEFAULT_RS_TOKEN &&
554
540
algorithm === 'HS256' ) {
555
541
setDefaultsForHMAC ( ) ;
556
542
}
557
-
558
-
559
543
}
560
544
561
545
function setDefaultsForRSA ( ) {
562
546
tokenEditor . setValue ( DEFAULT_RS_TOKEN ) ;
563
547
564
548
$ ( '.jwt-signature textarea[name=public-key]' ) . val ( DEFAULT_PUBLIC_RSA ) ;
565
549
$ ( '.jwt-signature textarea[name=private-key]' ) . val ( DEFAULT_PRIVATE_RSA ) ;
566
-
567
-
568
550
}
569
551
570
552
function setDefaultsForHMAC ( ) {
571
553
tokenEditor . setValue ( DEFAULT_HS_TOKEN ) ;
554
+ }
572
555
556
+ function updateToken ( ) {
557
+ var tokenType = getTokenType ( ) ;
558
+ if ( document . location . hash ) {
559
+ var qs = document . location . hash . slice ( 1 ) ;
560
+ var d = { } ;
561
+ qs = qs . split ( '&' ) ;
562
+ qs . forEach ( function ( kv ) { kv = kv . split ( '=' ) ; d [ kv [ 0 ] ] = kv [ 1 ] ; } ) ;
573
563
564
+ if ( d [ tokenType ] ) {
565
+ tokenEditor . setValue ( decodeURIComponent ( d [ tokenType ] ) ) ;
566
+ return ;
567
+ }
568
+ }
569
+ }
570
+
571
+ function getTokenType ( ) {
572
+ return tokenRadios . filter ( ':checked' ) . val ( ) ;
574
573
}
575
574
576
575
function validateKey ( ) {
@@ -588,17 +587,19 @@ FaFp+DyAe+b4nDwuJaW2LURbr8AEZga7oQj0uYxcYw==\n\
588
587
} else {
589
588
$textarea . addClass ( 'error' ) ;
590
589
}
591
-
592
-
593
590
}
594
591
595
592
updateAlgorithm ( ) ;
596
593
597
594
algorithmRadios . on ( 'change' , function ( ) {
598
595
updateAlgorithm ( ) ;
599
596
updateSignature ( ) ;
597
+ } ) ;
600
598
601
-
599
+ tokenRadios . on ( 'change' , function ( ) {
600
+ updateToken ( ) ;
601
+ updateAlgorithm ( ) ;
602
+ updateSignature ( ) ;
602
603
} ) ;
603
604
604
605
$ ( '.jwt-signature textarea[name="public-key"]' ) . on ( 'input' , updateSignature ) ;
@@ -629,10 +630,21 @@ FaFp+DyAe+b4nDwuJaW2LURbr8AEZga7oQj0uYxcYw==\n\
629
630
var d = { } ;
630
631
qs = qs . split ( '&' ) ;
631
632
qs . forEach ( function ( kv ) { kv = kv . split ( '=' ) ; d [ kv [ 0 ] ] = kv [ 1 ] ; } ) ;
633
+
634
+ if ( d . access_token && d . id_token ) {
635
+ // show token-type selector
636
+ $ ( '.jwt-playground .selections .token-type' ) . show ( ) ;
637
+ }
638
+
632
639
if ( d . id_token ) {
633
640
tokenEditor . setValue ( decodeURIComponent ( d . id_token ) ) ;
634
641
return ;
635
642
}
643
+
644
+ if ( d . access_token ) {
645
+ tokenEditor . setValue ( decodeURIComponent ( d . access_token ) ) ;
646
+ return ;
647
+ }
636
648
}
637
649
638
650
loadFromStorage ( function ( jwt ) {
@@ -669,6 +681,14 @@ $(".debugger-jwt .algorithm select").change(function() {
669
681
$ ( ".debugger-jwt .algorithm select" ) . change ( function ( ) { var a = $ ( '.debugger-jwt .algorithm input[value="' + $ ( this ) . val ( ) + '"]' ) ; a . prop ( "checked" , ! 0 ) } )
670
682
// end 07012015
671
683
684
+ $ ( ".debugger-jwt .token-type select" ) . change ( function ( ) {
685
+ $ ( '.debugger-jwt .token-type input[value="' + $ ( this ) . val ( ) + '"]' ) . parent ( ) . trigger ( "click" ) ;
686
+ $ ( '.debugger-jwt .token-type input[value="' + $ ( this ) . val ( ) + '"]' ) . change ( ) ;
687
+ } ) ;
688
+
689
+ $ ( ".debugger-jwt .token-type select" ) . change ( function ( ) { var a = $ ( '.debugger-jwt .token-type input[value="' + $ ( this ) . val ( ) + '"]' ) ; a . prop ( "checked" , ! 0 ) } )
690
+
691
+
672
692
// Fetch stargazers count for each repo from GitHub's API
673
693
$ ( '.stars' ) . each ( function ( idx , element ) {
674
694
var $el = $ ( element ) ;
0 commit comments