无法使用google-signin注销

时间:2017-07-20 00:20:53

标签: javascript oauth-2.0 google-signin

我正在尝试学习如何在我的网站上使用Google Signin。我按照我在此页面上找到的指南进行操作:https://developers.google.com/identity/sign-in/web/

所以我创建了一个新文档,我复制/浏览了他们在上面提到的代码。我在标记中添加了我的客户端ID,并测试了代码。 一切顺利,我可以登录。登录按钮改变了,并且说登录而不是登录。此外,在我查看我的控制台时,我可以看到来自console.log()的数据,如id,email,name,......

我继续阅读该指南,并找到了如何在此页面上添加“注销”按钮:https://developers.google.com/identity/sign-in/web/sign-in 我实现了这段代码,这里是我的完整代码(没有客户端ID)

<!--

<h1>Your Pictures:</h1>
{{range .Pics}}
<img class="insertedPics" src="{{.Path}}" alt="pic" id="{{.Id}}" 
height="500px" width="500px">
{{end}}

{{range .Cars}}
<h3>{{.Make}} - {{.Model}} - {{.Year}} </h3>
{{end}}

<img src="{{.Pic.Path}}" alt="car pic" id="{{.Car.Id}}" height="600px" width="600px">

-->        <-- Once I removed this, everything worked fine.

{{range .}}
<h3>{{.C.Make}} - {{.C.Model}}</h3>
<img src="{{.P.Path}}" alt="some pic" height="500px" width="500px" 
style="">
{{end}}

当我点击它时,我会让用户退出。&#39;在我的控制台中。但是,如果我刷新页面,谷歌按钮仍然表示我已登录,并且配置文件信息将在我的控制台中返回 - 即使我手动清除控制台。退出按钮显然不起作用,我不知道为什么。

有人有这方面的经验吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

要拨打signOut,您需要拨打电话authorize()以获取用于将用户标记为已注销的id_token。

请参阅google-api-javascript-client GitHub上的this issue

在那里发布了一个代码示例,说明您需要首先使用调用gapi.auth.authorize的回调函数调用gapi.auth.signOut()

本质上,这样的事情:

 gapi.auth.authorize(
    { 
        'client_id': CLIENT_ID, 
        'scope': SCOPES, 
        'immediate': false,
        cookie_policy: 'single_host_origin',
        response_type: 'token id_token'
    },
    function (authResult) {   gapi.auth.signOut();}
);