当前位置: 首页 > 知识库问答 >
问题:

使用Google java脚本客户端库的Google登录

雍志新
2023-03-14

我正在使用

gapi.auth.authorize({
        client_id : clientId,
        scope : scopes,
        immediate : true
    }, handleAuthResult);

我能够授权用户,然后我使用这个api给出了一个链接来gign出用户

gapi.auth.signOut();

它也注销了用户,但是当我刷新页面时,它不再要求重新登录。它是直接加载用户帐户,我想让它要求用户再次登录。有人能告诉我怎么做吗?

共有2个答案

乌俊健
2023-03-14

我试着用@class回答,它仍然不适用于signOut(),当我们调用gapi.auth.authorize.时没有错误,但是我找到了另一种方法,尝试访问链接https://accounts.google.com/o/oauth2/revoke?token=authResult['access_token'],这会让你喜欢signout,用户需要重新接受autherize。虽然我现在有点困惑,我们应该用哪种方式来signOut();

何兴邦
2023-03-14

如果您在本地主机上运行,注销将不起作用。

您所做的看起来不错。可能您在<code>handleAuthResult

handleAuthResult: function(authResult) {
  gapi.client.load('plus','v1', function(){
    $('#authResult').html('Auth Result:<br/>');
    for (var field in authResult) {
      $('#authResult').append(' ' + field + ': ' +
          authResult[field] + '<br/>');
    }
    if (authResult['access_token']) {
      $('#authOps').show('slow');
      $('#gConnect').hide();
      helper.profile();
      helper.people();
    } else if (authResult['error']) {
      // There was an error, which means the user is not signed in.
      // As an example, you can handle by writing to the console:
      console.log('There was an error: ' + authResult['error']);
      $('#authResult').append('Logged out');
      $('#authOps').hide('slow');
      $('#gConnect').show();
    }
    console.log('authResult', authResult);
  });
},

您可以在这里看到演示代码。如果打开浏览器的JavaScript控制台,用户注销时会注意到以下错误消息:

authResult 
...
Object {error: "user_signed_out", 
cookie_policy: "single_host_origin"
error: "user_signed_out"
expires_at: "1388530488"
expires_in: "86400"
g-oauth-window: undefined
g_user_cookie_policy: "single_host_origin"
issued_at: "1388444088"
response_type: "code token id_token gsession"
scope: "https://www.googleapis.com/auth/plus.login 
session_state: "707059cda8acedf0acf31d83c713e9f16f232610..25c4"
status: Object
google_logged_in: true
method: null
signed_in: false
...

如果用户自动/重复退出网站,很可能是由于cookie存储已损坏的已知问题。如果您看到此问题,请在隐身窗口中打开目标页面或删除当前cookie,例如在开发人员控制台中运行以下javascript:

var cookies = document.cookie.split(";");

for (var i = 0; i < cookies.length; i++) {
    var cookie = cookies[i];
    var eqPos = cookie.indexOf("=");
    var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
    document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
}
 类似资料:
  • 现代 Web 应用程序, 除了呈现并发送到浏览器的静态 HTML 页面外, 还包含 JavaScript, 用于通过操纵现有元素或通过 AJAX 加载新内容来修改浏览器中的页面。 本节介绍 Yii 提供的用于向网站添加 JavaScript 和 CSS 以及动态调整它们的方法。 注册脚本 使用 yii\web\View 对象时,可以动态注册前端脚本。 这里有两个专门的方法: registerJs(

  • CSS很强大的一点是,它具有很强的向前兼容性:如果浏览器不识别某个属性或值,它会忽略这个声明;如果不识别某个选择器,它会忽略整个规则。 这意味着新的选择器、属性和值,不会对老的浏览器产生严重影响。因此,设计师就可以大胆的应用CSS3的高级规则和声明,而不必担心老浏览器是否能够识别。 事实上,这些高级规则确实给设计带来极大的便利,设计师都迫不及待的要使用它,并且希望它们在老的浏览器中,和现代浏览器中

  • 我正在尝试使用应用程序脚本将BigQuery结果加载到Google电子表格中。这是我的密码 我得到的错误是 错误:invalid_client 找不到OAuth客户端。 请求详细信息 -cookie_policy_enforce=false -范围=https://www.googleapis.com/auth/bigqueryhttps://www.googleapis.com/auth/spr

  • 我正在使用selenium打开并登录google帐户,这是我的第一步。我已成功打开并填写了电子邮件回复,但在提交后,我收到了以下错误 “此浏览器或应用程序可能不安全。了解更多尝试使用不同的浏览器。如果您已经在使用受支持的浏览器,您可以刷新屏幕并重试登录。”来自谷歌。 有什么办法可以绕过这个问题吗?下面是我的代码。

  • 致命错误:未捕获的异常“exception”带有消息“此库必须通过composer或下载完整包来安装”。请参阅https://github.com/google/google-api-php-client#installation中的说明。在/home/users/myftp/dev.mywebsite.com/dashboard/google-api-php-client-master/src/