ich den Benutzer via Facebook erfolgreich am Authentifizierung und ihren Namen in def fbconnect bekommen()Speichern der Facebook-Login-Session
print "username" ,login_session['username']
session.name=login_session['username']
print "session.name",session.name
Aber in meinem html, wenn ich sehe, versuchen Sie überprüfen, ob der Benutzer angemeldet ist oder nicht
Es geht nicht in den Begrüßungsnamen Abschnitt, weil session.name ist Was fehlt mir hier? Vielen Dank.
Das ist mein Python Zeug
@app.route('/fbconnect', methods=['POST'])
def fbconnect():
if request.args.get('state') != login_session['state']:
print "state not equal to login_session"
response = make_response(json.dumps('Invalid state parameter.'), 401)
response.headers['Content-Type'] = 'application/json'
return response
access_token = request.data
print "access token received %s " % access_token
app_id = json.loads(open('fb_client_secrets.json', 'r').read())[
'web']['app_id']
app_secret = json.loads(
open('fb_client_secrets.json', 'r').read())['web']['app_secret']
url = 'https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=%s&client_secret=%s&fb_exchange_token=%s' % (
app_id, app_secret, access_token)
h = httplib2.Http()
result = h.request(url, 'GET')[1]
# Use token to get user info from API
userinfo_url = "https://graph.facebook.com/v2.4/me"
print "userinfo_url", userinfo_url
# strip expire tag from access token
token = result.split("&")[0]
print "token", token
url = 'https://graph.facebook.com/v2.4/me?%s&fields=name,id,email' % token
h = httplib2.Http()
result = h.request(url, 'GET')[1]
# print "url sent for API access:%s"% url
# print "API JSON result: %s" % result
data = json.loads(result)
login_session['provider'] = 'facebook'
login_session['username'] = data["name"]
login_session['email'] = data["email"]
login_session['facebook_id'] = data["id"]
# The token must be stored in the login_session in order to properly logout, let's strip out the information before the equals sign in our token
stored_token = token.split("=")[1]
login_session['access_token'] = stored_token
# Get user picture
url = 'https://graph.facebook.com/v2.4/me/picture?%s&redirect=0&height=200&width=200' % token
h = httplib2.Http()
result = h.request(url, 'GET')[1]
data = json.loads(result)
login_session['picture'] = data["data"]["url"]
# see if user exists
user_id = getUserID(login_session['email'])
if not user_id:
user_id = createUser(login_session)
login_session['user_id'] = user_id
output = ''
output += '<h1>Welcome, '
output += login_session['username']
output += '!</h1>'
output += '<img src="'
output += login_session['picture']
output += ' " style = "width: 300px; height: 300px;border-radius: 150px;-webkit-border-radius: 150px;-moz-border-radius: 150px;"> '
flash("Now logged in as %s" % login_session['username'])
print "username" ,login_session['username']
session['name']=login_session['username']
print "session['name']",session['name']
return output
Wenn ich die html zu
{% if login_session['username'] != '' %}
Dann sagt UNDDEFINEDERROR es zu ändern: 'login_session'
undefiniert ist
Bitte reduzieren Sie dies auf eine ** Minimal ** [MCVE]. Dump nicht einfach Code auf das Ende, redigieren Sie Ihren Beitrag, um eine zusammenhängende Frage zu sein. – davidism
Ich kann Ihr Problem nicht reproduzieren. Einen Wert für die Sitzung zu setzen und ihn später wieder zu laden funktioniert für mich gut. – davidism
Warte, was hat die Vorlage oben mit der Ansicht darunter zu tun? Diese Ansicht rendert keine Vorlage, sie erstellt aus irgendeinem Grund HTML manuell. – davidism