Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.        
  2.         //FEDERATED LOGIN
  3.        
  4.         private function login(provider:String):void
  5.         {
  6.             toggleIntro();
  7.             activityDialog = Dialog.service.create(
  8.                     new ActivityBuilder()
  9.                         .setTheme( new DialogTheme( DialogTheme.DEVICE_DEFAULT_DARK ))
  10.                         .build()
  11.                     );
  12.             activityDialog.show();
  13.            
  14.             trace("federated login init");
  15.            
  16.             var header:URLRequestHeader = new URLRequestHeader("Content-Type", "application/json");
  17.            
  18.             var obj:Object = new Object();
  19.             obj.continueUri = FIREBASE_REDIRECT_URL;
  20.             obj.providerId = provider;
  21.            
  22.             var rq:URLRequest = new URLRequest(FIREBASE_CREATE_AUTH_URL);
  23.             rq.method = URLRequestMethod.POST;
  24.             rq.data = JSON.stringify(obj);
  25.             rq.requestHeaders.push(header);
  26.            
  27.             var l:URLLoader = new URLLoader();
  28.             l.addEventListener(Event.COMPLETE, authUrlCreated);
  29.             l.addEventListener(IOErrorEvent.IO_ERROR, handleIOError);
  30.             l.load(rq);
  31.         }
  32.  
  33.         private function handleIOError(e:IOErrorEvent):void
  34.         {
  35.             trace("IO Error" + e.currentTarget.data);
  36.            
  37.             if (signingIn)
  38.             {
  39.                 phaseOut(password_txt, password_txt.x + ((stage.stageWidth / 2) - password_txt.width));
  40.                 phaseIn(email_txt, (stage.stageWidth -  email_txt.width) / 2);
  41.                
  42.                 Dialog.service.toast("Your login credentials are incorrect.");
  43.             }
  44.            
  45.         }
  46.        
  47.         private function authUrlCreated(e:Event):void
  48.         {
  49.             var raw:Object = JSON.parse(e.currentTarget.data);
  50.            
  51.             sessionId = raw.sessionId;
  52.            
  53.             swv = new StageWebView();
  54.             swv.addEventListener(LocationChangeEvent.LOCATION_CHANGE, swvLocationChange);
  55.             swv.stage = this.stage;
  56.             swv.viewPort = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);
  57.            
  58.             activityDialog.dismiss();
  59.             swv.loadURL(raw.authUri);
  60.            
  61.         }
  62.        
  63.         private function swvLocationChange(e:LocationChangeEvent):void
  64.         {
  65.             var location:String = swv.location;
  66.             if (location.indexOf("/__/auth/handler?code=") != -1 || location.indexOf("/__/auth/handler?state=") != -1 || location.indexOf("/__/auth/handler#state=") != -1 && location.indexOf("error") == -1)
  67.             {
  68.                 swv.removeEventListener(LocationChangeEvent.LOCATION_CHANGE, swvLocationChange);
  69.                 swv.dispose();
  70.                 trace("stagewebciew should be gone..");
  71.                
  72.                 requestUri = location;
  73.                 getAccountInfo();
  74.             }          
  75.         }
  76.        
  77.         private function getAccountInfo():void
  78.         {
  79.             var head:URLRequestHeader = new URLRequestHeader("Content-Type", "application/json");
  80.            
  81.             var obj:Object = new Object();
  82.             obj.requestUri = requestUri;
  83.             obj.sessionId = sessionId;
  84.             obj.returnSecureToken = true;
  85.            
  86.             var rq:URLRequest = new URLRequest(FIREBASE_VERIFY_ASSERTION_URL);
  87.             rq.method = URLRequestMethod.POST;
  88.             rq.data = JSON.stringify(obj);
  89.             rq.requestHeaders.push(head);
  90.            
  91.             var l:URLLoader = new URLLoader();
  92.             l.addEventListener(Event.COMPLETE, registerComplete);
  93.             l.addEventListener(IOErrorEvent.IO_ERROR, handleIOError);
  94.             l.load(rq);
  95.         }
  96.  
  97.         private function registerComplete(e:Event):void
  98.         {
  99.             trace("Registration complete:");
  100.             trace(e.currentTarget.data);
  101.             var rawData:Object = JSON.parse(e.currentTarget.data);
  102.            
  103.             idToken = rawData.idToken;
  104.             authToken = rawData.oauthIdToken;
  105.             uid = rawData.localId;
  106.            
  107.             trace("Attempting to get an access token..");
  108.            
  109.             //sUBMIT REFRESH token.
  110.             appSavedData = new Object();
  111.             appSavedData.refreshToken = rawData.refreshToken;
  112.             var fs:FileStream = new FileStream();
  113.                 fs.open(appSaveFile, FileMode.WRITE);
  114.                 fs.writeObject(appSavedData);
  115.                 fs.close();
  116.                
  117.             handleRefreshToken(rawData.refreshToken);
  118.         }
  119.  
  120.  
  121.         private function handleRefreshToken(refreshToken:String):void
  122.         {
  123.             var header:URLRequestHeader = new URLRequestHeader("Content-Type", "application/json");
  124.             var myObject:Object = new Object();
  125.             myObject.grant_type = "refresh_token";
  126.             myObject.refresh_token = refreshToken; 
  127.             var request:URLRequest = new URLRequest("https://securetoken.googleapis.com/v1/token?key="+FIREBASE_API_KEY);
  128.             request.method = URLRequestMethod.POST;
  129.             request.data = JSON.stringify(myObject);
  130.             request.requestHeaders.push(header);
  131.             var loader:URLLoader = new URLLoader();
  132.             loader.addEventListener(Event.COMPLETE, refreshTokenLoaded);
  133.             loader.addEventListener(IOErrorEvent.IO_ERROR, handleIOError);
  134.             loader.load(request);
  135.         }
  136.        
  137.         private function refreshTokenLoaded(e:Event):void
  138.         {
  139.             e.target.removeEventListener(Event.COMPLETE, refreshTokenLoaded);
  140.             var rawData:Object = JSON.parse(e.currentTarget.data);
  141.            
  142.             if (rawData.access_token == null)
  143.             {
  144.                 toggleContent(0);
  145.                 toggleIntro();
  146.                 Dialog.service.toast("There was a problem logging you in. Please try again.");
  147.                 FirebaseCrash.service.report(new Error("Login Error", 0));
  148.             }
  149.             else
  150.             {
  151.                 authToken = rawData.access_token;
  152.                 trace("REFRESH TOKEN LOADED.");
  153.                 trace(e.target.data);
  154.                
  155.                 trace("Init tutorial");
  156.                
  157.                 if (signingIn)
  158.                 {
  159.                     toggleContent(CONTENT_FRAME);
  160.                     toggleHomeScreen();
  161.                 }
  162.                 else
  163.                 {
  164.                     //Init bio fill//
  165.                     toggleProfile(true);
  166.                 }
  167.             }
  168.            
  169.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement