javascript - 使用 Angular Js、Oauth 2.0 和 GAE 作为我的后端和 Bootstrap 刷新页面

标签 javascript angularjs twitter-bootstrap google-app-engine oauth

大家好,我是 Web 开发新手,我使用 Bootstrap、Angular Js 创建了一个简单的单页面应用程序。我使用 Oauth 2.0 进行 Google+ 登录身份验证,并使用 Google 应用引擎作为后端。问题是当我从登录页面登录并路由到不同的 HTML 页面时,它工作得很好,但是当我在特定网页中并尝试重新加载页面时,oauth 身份验证丢失,我的 google+ User 对象返回 null在端点中。我的 Index.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,并且我的所有 token 都会丢失并将我重定向到登录页面。我不知道我犯了什么错误。请帮我解决这个问题。

最佳答案

希望这对某人有帮助,我在 Angular JS 中使用 session 存储来存储我的 access_token,并尝试在刷新页面时检索相同的内容,但是当我为gapi.client API 设置 token 时出现语法问题。以下是存储和检索的示例代码。 //保存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的语法。谢谢

关于javascript - 使用 Angular Js、Oauth 2.0 和 GAE 作为我的后端和 Bootstrap 刷新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30957413/

相关文章:

javascript - SVG 过滤器无法在 React 中渲染

javascript - 在 Controller 渲染 View 之前将ajax数据加载到$scope中

javascript - JQuery 选择器未选择任何内容。

javascript - Angular js是否与jquery multiselect不兼容

css - 如何在 Bootstrap 3 Glyphicons 中传递数字

javascript - 如何使用 HTML/JavaScript 捕获客户端 "desktop"部分的屏幕截图?

javascript - 如何在 HTML/Javascript 中创建递归菜单?

javascript - 如何使用 javascript 从 jsp 中的链接获取信息?

javascript - 第一次加载页面时显示事件颜色 - AngularJS

javascript - 如何从angularjs中的响应 header 读取 token