我从这个烧瓶应用程序中克隆了一个应用程序。 我已将Google登录按钮添加到登录页面,该页面会发送包含令牌详细信息的POST消息。所以flasky呈现一个登录表单,但不是表格做POST,谷歌的javascript确实如此。 我可以看到我的处理程序正确读取了令牌:
@auth.route('/receive_idtoken', methods=['POST']) # gives us the idtoken.
def receive_idtoken():
然后继续检查用户是否已知:
user = User.query.filter_by(email=idinfo['email']).first()
if user is not None:
login_user(user,remember=True)
flash("Congratulations, you have logged in")
return redirect(request.args.get('next') or url_for('main.index'))
重定向导致我的调试器在main.index的处理程序中恢复控制,模板呈现正常。但页面永远不会出现在浏览器中。登录页面保持不变。浏览器是Firefox,全部在ubuntu 16.04上
我猜上一个请求没有被令牌的ajax帖子终止?
这就是发布token_id的方式:
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://localhost:5000/auth/receive_idtoken'); // to-do need to use the template for this so not to hardcode
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = function() {
console.log('Signed in as: ' + xhr.responseText);
};
xhr.send('idtoken=' + id_token);
(纽比)