我没有favicon.ico,但IE总是提出请求.
是否可以阻止浏览器请求我的网站的favicon?也许HTML标题中有一些META-TAG?
我的代码中有一个错误.我能够登录并检索用户信息.但又signinCallback被召唤了(我不知道怎么回事).它显示我之前的用户信息已经消失!这是HTML方面:
<span id="signinButton">
<span
class="g-signin"
data-callback="signinCallback"
data-clientid="CLIENT_ID"
data-cookiepolicy="single_host_origin"
data-requestvisibleactions="http://schemas.google.com/AddActivity"
data-scope="https://www.googleapis.com/auth/plus.profile.emails.read"
data-width="standard"
data-height="short">
</span>
</span>
Run Code Online (Sandbox Code Playgroud)
这是javascript方面:
var AuthStates = {
google: null
};
function signinCallback(authResult) {
console.dir(authResult);
console.log('Sign-in state: ' + authResult['error']+authResult['access_token']);
AuthStates.google = authResult;
console.log('signinCallback');
chooseAuthProvider();
}
function chooseAuthProvider() {
if (AuthStates.google && AuthStates.facebook) {
if (AuthStates.google['access_token']) {
// Signed in with Google, you can now use Google+ APIs.
console.log(AuthStates.google);
gapi.client.load('plus','v1', function(){
var request = gapi.client.plus.people.get({
'userId': 'me'
});
request.execute(function(resp) {
document.getElementById('cname').value =resp.displayName;
document.getElementById('cemail').value =resp.emails[0].value;
console.log('Retrieved profile for:' …Run Code Online (Sandbox Code Playgroud) 我正在开发一项功能,允许用户使用他们的Google帐户登录我的网站.
我的代码基于Google文档(其他signIn()选项位于元标记中).
function login() {
gapi.auth.signIn({'callback':
function (authResult) {
if (authResult['status']['signed_in']) {
console.log('Okay');
}else {
console.log('Error');
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
当我调用login()时,会出现Google弹出窗口,我批准了我的应用程序的条款,一切正常.
但回调被调用两次:
我'approvalprompt': 'force'在signIn()函数中添加了选项.回调函数不再被调用两次,但它会强制用户批准应用程序的权限,即使之前已批准.所以它不是用户友好的.
是否有友好的用户方式来批准应用程序的权限一次没有两个回调?
谢谢.
我正在使用谷歌登录混合流来验证用户,但我有一个奇怪的错误:当用户退出(authResult['error'] == 'user_signed_out')时,会signInCallback被调用两次!当用户登录时不会发生这种情况,因此我认为它不会与(相当烦人的)"欢迎回来[用户]"提示相关联.
我的代码看起来像这样:
function signInCallback(authResult) {
console.log("signIn callback called, using " + authResult['status']['method'] + " method");
console.log("authResult = ");
console.dir(authResult);
if (authResult['code']) {
// do things....
}else if(authResult.error == "user_signed_out"){
// do other things...
}
}
Run Code Online (Sandbox Code Playgroud)
这是我在控制台上得到的: console log http://img4.hostingpics.net/pics/968420Capture1.jpg 查看大图
我正在使用的HTML代码:
<div id="signinButton" style="display:<?=(isset($_SESSION['userinfo'])) ? 'none' : 'inline-block'?>">
<span class="g-signin"
data-scope="<?=join(' ',$scopes)?>"
data-clientid="<?=$client_id?>"
data-redirecturi="<?=$redirect_uri?>"
data-accesstype="<?=$access_type?>"
data-cookiepolicy="<?=$cookie_policy?>"
data-callback="signInCallback"
data-approvalprompt="<?=$approval_prompt?>"
data-state="<?=$_SESSION['state']?>"
></span>
</div>
Run Code Online (Sandbox Code Playgroud)
我在两个不同的浏览器上使用两个不同的Google帐户.我最初认为这是由于(谷歌存储在一个cookie中google_account_id和用户状态,如G_USERSTATE_H3 : 'google_account_id#1=0&google_account_id#2=1').但是我在两个浏览器上清除了所有cookie,并且只用了一个浏览器和一个谷歌帐户运行我的测试.我还是得到了这个bug.
这是一个非常讨厌的bug.此外,谷歌Chrome处理得相当好,但是Firefox完全被吓坏了并且执行了三次回调,然后,用户无法登录(他已登录1秒,并立即重新注销).
有人可以帮帮我吗?
更新:这是Google JS Api的包含方式:
<script>
// Asynchronous …Run Code Online (Sandbox Code Playgroud) javascript google-api google-login google-oauth google-api-js-client
javascript ×3
google-api ×2
google-oauth ×2
google-plus ×2
callback ×1
favicon ×1
google-login ×1
html ×1