Google OAuth 2.0。页面刷新后,javascript API不会保持“登录”状态

时间:2015-11-09 18:50:31

标签: angularjs oauth-2.0 google-api google-plus

我正在开发一个带有谷歌+用户身份验证的AngularJS应用程序。我已经采用了angular-google-plus软件包(一个Angular模块,可以使用Google+ API处理登录)。

在它的核心,登录将使用gapi对象:

gapi.auth.authorize(...)

页面不刷新时一切正常。例如,我可以通过以下方式从API获取当前用户: gapi.client.oauth2.userinfo.get().execute(function() { ... })但是,当我刷新页面时,状态不会被保留。

刷新页面后,为了保持“Logged-In”状态,我需要做什么?似乎谷歌api“忘记”了这个州。

1 个答案:

答案 0 :(得分:0)

我不熟悉您的代码...真的OAuth 2.0吗? 我认为您是在谈论Google Sign-In JavaScript client,因为您提到的是页面刷新。

我相信您无法立即获得诸如gapi.client.oauth2.userinfo之类的任何信息,因为没有代码等待实例初始化。

使用then执行以下操作:

gapi.auth2.init({client_id: "...", ...}).then(function(googleAuth) { // onInit
  console.log(googleAuth.isSignedIn.get());
}, function() { // onError
});