Oauth / Hello.js返回空"名称"字段

时间:2015-09-29 17:30:30

标签: javascript oauth-2.0 google-oauth hello.js

我使用hello.js允许用户在我的网站上签名。到目前为止,登录谷歌已经工作正常,但我有一个特定的用户收到错误 他们有一个非gmail的电子邮件地址,但通常可以使用它登录谷歌服务(想想" thisguy@companyname.net")。当他登录时,返回的对象有几个变量的空白字段,表示他的名字("名称"," last_name"," first_name"," displayName& #34;都是空白的)。结果是他得到了热烈的欢迎"欢迎[对象]"登录时的消息,我的应用程序没有名称信息可供使用。下面是我用来实现hello.js的代码。但是,我对我的代码是否有问题,或者我通过谷歌开发者控制台进行设置的方式,或者是否与他的帐户的性质有关,我感到很困惑。 / p>

      hello.on('auth.login', function(auth) {
              // Call user information, for the given network
              hello(auth.network).api('/me').then(function(r) {
                      // Inject it into the container
                      $("#div" + auth.network).css('visibility', 'visible'); //reveal div where prof is displayed
                      $("#div" + auth.network).css("display", "block");
                      var label = document.getElementById('profile_' + auth.network);
                      label.innerHTML = '<div style="padding:10px;"><img id="profilepic" src="' + r.thumbnail + '" /><br>Welcome ' + r.name + '</div>';
                      console.log("Returned object from sos: ",r);
                      console.log(r.name," from ",auth.network);
                      sos = auth.network;
                      sos_name = r.name ;
              });
      });


      hello.init({
             facebook: FACEBOOK_CLIENT_ID,
             google: GOOGLE_CLIENT_ID,
      });

以下是console.log输出&#34; r&#34;以上。如果有任何敏感信息,我用REDACTED替换了一些字段。

displayName&#34;&#34;

etag&#34;&#34;删除&#34;&#34;

first_name&#34;&#34;

id&#34;删除&#34;

image对象{url =&#34; https://lh3.googleuserco...rscbv5M/photo.jpg?sz = 50&#34;,
ISDEFAULT =真}

isPlusUser false

善良&#34;加上#person&#34;

语言&#34; en&#34;

last_name&#34;&#34;

name Object {familyName =&#34;&#34;,givenName =&#34;&#34;}

objectType&#34; person&#34;

图片&#34; https://lh3.googleuserco...rscbv5M/photo.jpg?sz=50&#34;

thumbnail&#34; https://lh3.googleuserco...rscbv5M/photo.jpg?sz=50&#34;

验证错误

请注意,我已将其与isPlusUser设置为false的其他Google帐户登录,但他们仍然拥有完整的名称信息,因此我不认为这是一个红旗。

1 个答案:

答案 0 :(得分:-1)

在某些情况下,从Google返回的名称字段可以是空字符串。我不确定这是否是一个错误,但无论哪种方式,你最好的做法是处理没有给出名字的情况。