使用 Angular Js、Oauth 2.0 和 GAE 作为我的后端和引导程序刷新页面



大家好,我是Web开发的新手,我使用bootstrap,angular Js创建了一个简单的单页应用程序。我使用Oauth 2.0进行Google+登录身份验证和Google应用引擎作为我的后端。问题是当我从登录页面登录并路由到不同的 HTML 页面时,它运行良好且很好,但是当我在特定网页中并尝试重新加载页面时,oauth 身份验证丢失,我的 google+ 用户对象在端点中返回我 null。我的索引.html页面如下所示

<script>
        /**
         * Initializes the Google API JavaScript client. Bootstrap the angular module after loading the Google libraries
         * so that Google JavaScript library ready in the angular modules.
         */
         function init() {
          gapi.client.load('mygaeendpoint', 'v1', null, '//'+                        
                           window.location.host'/_ah/api');
		
           gapi.client.load('oauth2', 'v2', function () {
              angular.bootstrap(document, ['myangularApp']);    					                    });   
         };
    </script>
    <script src="//apis.google.com/js/client:plusone.js?onload=init"></script>
</head>
<body ng-controller="RootCtrl" ng-init="initSignInButton()">
  
  
     <ng-view></ng-view>

因此,当我重新加载页面时,它来到此页面会重新初始化oauth,并且我的所有令牌都丢失并将我重定向到登录页面。我不知道我犯了什么错误。请帮帮我解决这个问题。

希望这对某人有所帮助,我在 Angular JS 中使用会话存储来存储我的access_token,并在刷新页面时尝试检索相同的内容,但是当我为 gapi.client API 设置 toke 时存在语法问题。下面是要存储和检索的示例代码。使access_token酸涩 sessionStorage.setItem( "accesstoken",gapi.auth .getToken().access_token);检索并重新设置它

var persistedval = sessionStorage
                            .getItem("accesstoken");
                    if (persistedval) {
                        gapi.auth.setToken({access_token :persistedval});
                        console.log(gapi.auth.getToken().access_token);
                        oauth2Provider.signedIn = true;
                    }

最主要的是注意setToken的语法。谢谢

最新更新