1

我正在使用谷歌应用引擎 python。我按照示例代码让用户登录。在这一步之后,我应该创建自己的 cookie 或会话来记住用户吗?因为当我刷新页面时,登录按钮再次出现。

这是javascript。

<script src="https://apis.google.com/js/plusone.js" type="text/javascript"></script>
  <script type="text/javascript">
  /*
   * Triggered when the accepts the the sign in, cancels, or closes the
   * authorization dialog.
   */
  function loginFinishedCallback(authResult) {
    if (authResult) {
      if (authResult['error'] == undefined){
        gapi.auth.setToken(authResult); // Store the returned token.
        toggleElement('signin-button'); // Hide the sign in upon successful sign in.
        getEmail();                     // Trigger request to get the email address.
      } else {
        console.log('An error occurred');
      }
    } else {
      console.log('Empty authResult');  // Something went wrong
    }
  }

  /*
   * Initiates the request to the userinfo endpoint to get the user's email
   * address. This function relies on the gapi.auth.setToken containing a valid
   * OAuth access token.
   *
   * When the request completes, the getEmailCallback is triggered and passed
   * the result of the request.
   */

  function getEmail(){
    // Load the oauth2 libraries to enable the userinfo methods.
    gapi.client.load('oauth2', 'v2', function() {
          var request = gapi.client.oauth2.userinfo.get();
          request.execute(getEmailCallback);
        });
  }

  function getEmailCallback(obj){
    var el = document.getElementById('email');
    var email = '';

    if (obj['email']) {
      email = 'Email: ' + obj['email'];
    }

    //console.log(obj);   // Uncomment to inspect the full object.

    el.innerHTML = email;
    toggleElement('email');
  }

  function toggleElement(id) {
    var el = document.getElementById(id);
    if (el.getAttribute('class') == 'hide') {
      el.setAttribute('class', 'show');
    } else {
      el.setAttribute('class', 'hide');
    }
  }
  </script>

这是登录按钮。

<span id="signin-button" class="show">
         <div class="g-signin" data-callback="loginFinishedCallback"
          data-approvalprompt="force"
          data-clientid="279937419542.apps.googleusercontent.com"
          data-scope="https://www.googleapis.com/auth/plus.login 
          https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/plus.me                            https://www.googleapis.com/auth/userinfo.profile"
          data-height="short"
          data-cookiepolicy="single_host_origin"
              >
        </div>
    </span>
4

0 回答 0