1+ 'use strict' ;
2+ function run ( ) {
3+ var oauth2 = window . opener . swaggerUIRedirectOauth2 ;
4+ var sentState = oauth2 . state ;
5+ var redirectUrl = oauth2 . redirectUrl ;
6+ var isValid , qp , arr ;
7+
8+ if ( / c o d e | t o k e n | e r r o r / . test ( window . location . hash ) ) {
9+ qp = window . location . hash . substring ( 1 ) ;
10+ } else {
11+ qp = location . search . substring ( 1 ) ;
12+ }
13+
14+ arr = qp . split ( "&" )
15+ arr . forEach ( function ( v , i , _arr ) { _arr [ i ] = '"' + v . replace ( '=' , '":"' ) + '"' ; } )
16+ qp = qp ? JSON . parse ( '{' + arr . join ( ) + '}' ,
17+ function ( key , value ) {
18+ return key === "" ? value : decodeURIComponent ( value )
19+ }
20+ ) : { }
21+
22+ isValid = qp . state === sentState
23+
24+ if ( (
25+ oauth2 . auth . schema . get ( "flow" ) === "accessCode" ||
26+ oauth2 . auth . schema . get ( "flow" ) === "authorizationCode" ||
27+ oauth2 . auth . schema . get ( "flow" ) === "access_code" ||
28+ oauth2 . auth . schema . get ( "flow" ) === "authorization_code"
29+ ) && ! oauth2 . auth . code ) {
30+ if ( ! isValid ) {
31+ oauth2 . errCb ( {
32+ authId : oauth2 . auth . name ,
33+ source : "auth" ,
34+ level : "warning" ,
35+ message : "Authorization may be unsafe, passed state was changed in server Passed state wasn't returned from auth server"
36+ } ) ;
37+ }
38+
39+ if ( qp . code ) {
40+ delete oauth2 . state ;
41+ oauth2 . auth . code = qp . code ;
42+ oauth2 . callback ( { auth : oauth2 . auth , redirectUrl : redirectUrl } ) ;
43+ } else {
44+ let oauthErrorMsg
45+ if ( qp . error ) {
46+ oauthErrorMsg = "[" + qp . error + "]: " +
47+ ( qp . error_description ? qp . error_description + ". " : "no accessCode received from the server. " ) +
48+ ( qp . error_uri ? "More info: " + qp . error_uri : "" ) ;
49+ }
50+
51+ oauth2 . errCb ( {
52+ authId : oauth2 . auth . name ,
53+ source : "auth" ,
54+ level : "error" ,
55+ message : oauthErrorMsg || "[Authorization failed]: no accessCode received from the server"
56+ } ) ;
57+ }
58+ } else {
59+ oauth2 . callback ( { auth : oauth2 . auth , token : qp , isValid : isValid , redirectUrl : redirectUrl } ) ;
60+ }
61+ window . close ( ) ;
62+ }
63+
64+ if ( document . readyState !== "loading" ) {
65+ run ( )
66+ } else {
67+ document . addEventListener ( "DOMContentLoaded" , function ( ) {
68+ run ( )
69+ } )
70+ }
0 commit comments