Facebook Callback appends '#_=_' to Return URL

前端 未结 23 1749
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-11-22 14:56

Facebook callback has started appending #_=_ hash underscore to the Return URL

Does anyone know why? What is the solution?

23条回答
  •  醉酒成梦
    2020-11-22 15:07

    With angular and angular ui router, you can fix this

        app.config(function ($stateProvider, $urlRouterProvider, $locationProvider) {
    
          // Make a trailing slash optional for all routes
          // - Note: You'll need to specify all urls with a trailing slash if you use this method.
          $urlRouterProvider.rule(function ($injector, $location) {
            /***
            Angular misbehaves when the URL contains a "#_=_" hash.
    
            From Facebook:
              Change in Session Redirect Behavior
              This week, we started adding a fragment #_=_ to the redirect_uri when this field is left blank.
              Please ensure that your app can handle this behavior.
    
            Fix:
              http://stackoverflow.com/questions/7131909/facebook-callback-appends-to-return-url#answer-7297873
            ***/
            if ($location.hash() === '_=_'){
              $location.hash(null);
            }
    
            var path = $location.url();
    
            // check to see if the path already has a slash where it should be
            if (path[path.length - 1] === '/' || path.indexOf('/?') > -1) {
              return;
            }
            else if (path.indexOf('?') > -1) {
              $location.replace().path(path.replace('?', '/?'));
            }
            else {
              $location.replace().path(path + '/');
            }
          });
    
          // etc ...
        });
    });
    

提交回复
热议问题