我正在开发一个带烧瓶的应用程序,我必须使用谷歌登录。 我已按照https://developers.google.com/identity/sign-in/web/sign-in的指示进行操作,并且它们在我的桌面上运行良好。
但是当我在笔记本电脑上试用它时,我得到以下异常:未捕获的异常[object Object]
这是我正在执行的代码:
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恢复正常工作,但有些东西似乎无法正常工作。
答案 0 :(得分:2)
解决。这是由于我的用户环境中的一些配置错误。我已经在我的笔记本电脑上创建了另一个用户,现在谷歌登录工作。