आप ऐसा करने के लिए कुकी का उपयोग कर सकते हैं ... यह वास्तव में इतना कठिन नहीं है। आप उपयोगकर्ता के प्रमाणीकृत ट्रैक करने के लिए कुकी का उपयोग कर सकते हैं और सत्र कुंजी को gae datastore में संग्रहीत कर सकते हैं।
एक उदाहरण नहीं है (यह सिर्फ मूल विचार दिखाने के लिए, मैं गारंटी नहीं है कोड सीधे इस्तेमाल किया जा सकता है)
बेसिक उपयोगकर्ता तालिका:
# simply add an property to store the session key
class User(db.Model):
username = db.StringProperty()
password = db.StringProperty()
session = db.StringProperty()
लॉग इन समारोह
# Do the following step:
# 1. make sure user provide correct username and password
# 2. generate a random session key
# 3. store the session key to datastore
# 4. set the session key and user name in cookie
class LoginAPI(Webapp.RequestHandler):
def get(self):
username = self.getVar('username', username)
password = self.getVar('password', password)
user = User.all().filter("username = ", username).get()
password = encrypted_the_password(password) # encrypted your password with your own method!
if user.password == password:
# User login successfually
session = generate_random_session_key() # generate your session key here
user.session = session
user.put()
expires_time = decide_your_expires_time() # decide how long the login session is alive.
cookie_time_format = "%a, %d-%b-%Y %H:%M:%S GMT"
expires_datetime = datetime.datetime.fromtimestamp(expires_time)
# set cookie as session
self.response.headers.add_header("Set-Cookie", "user=%s; expires=%s; path=/" % (user.username,expires_datetime.strftime(cookie_time_format)))
self.response.headers.add_header("Set-Cookie", "session=%s; expires=%s; path=/" % (user.session, expires_datetime.strftime(cookie_time_format)))
else:
#User login failed
pass
लॉगआउट समारोह
# Remove the previous cookie info
class LoginAPI(Webapp.RequestHandler):
def get(self):
# remove the cookie
self.response.headers.add_header("Set-Cookie", "user=%s; expires=%s; path=/" % ("",expires_datetime.strftime(cookie_time_format)))
self.response.headers.add_header("Set-Cookie", "session=%s; expires=%s; path=/" % ("", expires_datetime.strftime(cookie_time_format)))
जब आप उपयोगकर्ता लॉगिन
# Get the session info from cookie. If the session info match the info stored in datastore
# Then user authenticate successfully.
class SomePage(Webapp.RequestHandler):
def get(self):
# get cookie info
username_from_cookie = self.request.cookies.get("user", "")
session_from_cookie = self.request.cookies.get("session", "")
if username_from_cookie and session_from_cookie:
user = User.all().filter("username = ", username_from_cookie).get()
if user.session == session_from_cookie:
# the user is login correctly
pass
else:
# the user is not login
pass
else:
# the user is not login
pass
आवश्यक आप शायद एक टैग जो क्रम के लिए आप (अजगर/जावा) का उपयोग कर रहे सही भीड़ खींचने के लिए जोड़ना चाहिए। और फ्रेमवर्क पर एक नज़र डालें जो –
चीजों के सत्र पक्ष के साथ आपकी मदद कर सकती है ऐप इंजन के लिए सत्र पुस्तकालय हैं - आप किस बारे में अनिश्चित हैं? –