Javascript Google Signin未捕获的异常[object Object]

时间:2018-04-27 19:52:32

标签: javascript exception flask oauth-2.0 google-oauth

我正在开发一个带烧瓶的应用程序,我必须使用谷歌登录。 我已按照https://developers.google.com/identity/sign-in/web/sign-in的指示进行操作,并且它们在我的桌面上运行良好。

但是当我在笔记本电脑上试用它时,我得到以下异常:未捕获的异常[object Object]

screenshot

这是我正在执行的代码:

main.py:

"""
Flask test
"""
from flask import Flask, url_for, request, render_template, redirect
app = Flask(__name__) 

@app.route("/") 
def test():
    return render_template("ejemplo.html")

#LAUNCH APP
if __name__ == "__main__":
    app.run(host='0.0.0.0',port=5000)

ejemplo.html:

<script src="https://apis.google.com/js/platform.js" async defer></script>

<meta name="google-signin-client_id"
content="MYGOOGLEUSERSTRINGID.apps.googleusercontent.com">

<div class="g-signin2" data-onsuccess="onSignIn"></div>

<a href="#" onclick="signOut();">Sign out</a>

<script>
function onSignIn(googleUser) {
  var profile = googleUser.getBasicProfile();
  console.log('ID: ' + profile.getId()); // Do not send to your backend! Use an ID token instead.
  console.log('Name: ' + profile.getName());
  console.log('Image URL: ' + profile.getImageUrl());
  console.log('Email: ' + profile.getEmail()); // This is null if the 'email' scope is not present.
}

function signOut() {
var auth2 = gapi.auth2.getAuthInstance();
auth2.signOut().then(function () {
  console.log('User signed out.');
});
}

</script>

在我的笔记本电脑上,当我点击Google登录按钮时,会出现一个要求提供凭据的窗口。但是在给出凭证之后没有任何反应,onSignIn函数不会执行。

如果我删除了

<div class="g-signin2" ...</div> 

行,此异常无法启动。

我也在另一个桌面上尝试了这个,带有全新安装的烧瓶及其要求,但它工作正常,我没有得到这个例外。我在三台计算机上使用了相同的安装方法:

使用https://github.com/pablopenna/flask_app

中的脚本instalar_flask.txt 编辑:我忘了说我编辑了/ etc / hosts文件来添加行

127.0.0.1    dominioppr.com

因为这是我在Google API控制台中允许的URI。

EDIT2: 我刚刚在笔记本电脑上创建了另一个用户,安装了烧瓶并执行完全相同的代码。这次它奏效了。

我认为这个问题是由于一些本地配置错误造成的。我已经破坏了我的unity / compiz桌面环境,我不得不安装一个带有metacity的轻型版gnome来让我的GUI恢复正常工作,但有些东西似乎无法正常工作。

1 个答案:

答案 0 :(得分:2)

解决。这是由于我的用户环境中的一些配置错误。我已经在我的笔记本电脑上创建了另一个用户,现在谷歌登录工作。