OSDN Git Service

Verison 0.6.198, add jsdoc commnets.
[pettanr/clientJs.git] / 0.6.x / js / 06_net / 10_XOAuth2.js
index 961d0a2..063cb4a 100644 (file)
@@ -93,23 +93,38 @@ X[ 'OAuth2' ] = X_EventDispatcher[ 'inherits' ](
                        
                        /**
                         * 認可用 window をポップアップする。ポップアップブロックが働かないように必ず pointer event 内で呼ぶこと。
+                        * <dl>
+                        * <dt>1 : <dd>認可用 window がポップアップ中(自身)
+                        * <dt>2 : <dd>コードを認可中
+                        * <dt>3 : <dd>トークンのリフレッシュ中
+                        * <dt>4 : <dd>接続
+                        * <dt>5 : <dd>他のOAuth2サービスの認可用 window がポップアップ中
+                        * </dl>
+                        * @return {number}
                         */
                        'requestAuth' : function(){
-                               var url, w, h;
+                               var e = X_EventDispatcher_CURRENT_EVENTS[ X_EventDispatcher_CURRENT_EVENTS.length - 1 ],
+                                       w, h;
+                               
                                // TODO pointer event 内か?チェック
+                               if( !e || !e[ 'pointerType' ] ){
+                                       alert( 'タッチイベント以外での popup! ' + ( e ? e.type : '' ) );
+                                       return;
+                               };
+                               
                                // 二つ以上の popup を作らない
                                if( X_NET_OAUTH2_authorizationWindow ) return;
                                
                                pair = X_Pair_get( this );
                                
                                if( pair.net || pair.oauth2State ) return;
-                               
-                               url = pair[ 'authorizeEndpoint' ];
+
                                w   = pair[ 'authorizeWindowWidth' ]  || 500;
                                h   = pair[ 'authorizeWindowHeight' ] || 500;
                                
+                               // TODO X.Util.Window
                                X_NET_OAUTH2_authorizationWindow = window.open(
-                                       X_URL_create( url,
+                                       X_URL_create( pair[ 'authorizeEndpoint' ],
                                                {
                                                        'response_type' : 'code',
                                                        'client_id'     : pair[ 'clientID' ],
@@ -356,11 +371,11 @@ function X_NET_OAUTH2_onXHR401Error( oauth2, e ){
        };
        
        // http://d.hatena.ne.jp/ritou/20110402/1301679908
-       if ( bearerParams && bearerParams.indexOf( ' error=' ) === -1 ) { // bearerParams.error == undefined
+       if( bearerParams && bearerParams.indexOf( ' error=' ) === -1 ){ // bearerParams.error == undefined
                pair.oauth2State = 0;
                oauth2[ 'asyncDispatch' ]( X_EVENT_NEED_AUTH );
        } else
-       if ((( bearerParams && bearerParams.indexOf( 'invalid_token' ) !== -1 ) || !headersExposed) && X_OAuth2_getRefreshToken( oauth2 ) ) {
+       if( ( ( bearerParams && bearerParams.indexOf( 'invalid_token' ) !== -1 ) || !headersExposed ) && X_OAuth2_getRefreshToken( oauth2 ) ){
                X_OAuth2_removeAccessToken( oauth2 ); // It doesn't work any more.
                pair.oauth2State = 3;
                oauth2[ 'refreshToken' ]();