webapp2에서 세션 ID를 가져 오는 방법은 무엇입니까?webapp2 세션 ID 받기
아무데도 문서화되지 않은 것 같고 나에게는 사소한 것이 아니 었습니다.
나는이 질문에 대한 답으로 제시 한 해결책을 찾았지만 어쩌면 누군가는 더 간단하거나 더 좋은 것을 발견 할 것입니다. 어쨌든 나는이 사람
내 솔루션은 다음과 같습니다webapp2에서 세션 ID를 가져 오는 방법은 무엇입니까?webapp2 세션 ID 받기
아무데도 문서화되지 않은 것 같고 나에게는 사소한 것이 아니 었습니다.
나는이 질문에 대한 답으로 제시 한 해결책을 찾았지만 어쩌면 누군가는 더 간단하거나 더 좋은 것을 발견 할 것입니다. 어쨌든 나는이 사람
내 솔루션은 다음과 같습니다에게 도움이 될 수 있다고 생각 : 당신이 페이지를 새로 고침 할 때까지 예에서
import webapp2
from webapp2_extras import sessions
class Test(webapp2.RequestHandler):
def get(self):
session_store = sessions.get_store(request=self.request)
cookie_name = session_store.config['cookie_name']
session_id = self.request.cookies[cookie_name]
self.response.out.write('<html><body>')
self.response.out.write('Session id: %s' % session_id)
self.response.out.write("</body></html>")
, 당신은, 세션 ID를 얻을 수 없습니다. 세션을 만들려면 인증 페이지를 만들어야합니다. 또한 세션 저장소를 시작하고 요청이 끝날 때 모든 세션을 저장하도록 dispatch() 메서드를 확장하는 기본 처리기를 정의해야합니다. documentation 읽기 예 :
class Main(main.BaseHandler):
def get(self):
if not self.session.get('user'):
self.redirect("/authenticate",abort=True)
session = self.request.cookies("session")
#more stuff........
class Authenticate(main.BaseHandler):
def get(self):
if self.session.get('user'):
self.redirect("/")
else:
self.render("authenticate.htm")
def post(self):
if self.session.get('user'):
self.redirect("/",abort=True)
post_param = {"username":self.request.get("username"),
"password":self.request.get("password")}
if not post_param["password"] or not post_param["username"]:
redirect("/authenticate")
mySql = dbLib.MySqlLib()
try:
mySql.query("SELECT password FROM users where username=%s", post_param["username"],))
dbPassword = mySql.dbCur.fetchone()[0]
except dbLib.ProgrmmgError as error:
self.render("authenticate.htm",username = post_param["username"],
errorMessage = "Password and/or Username\
else: invalid")
if bcrypt.hashpw(post_param["password"],dbPassword) == dbPassword:
self.session['user'] = "root"
self.redirect("/")
else:
self.render("authenticate.htm",username = post_param["username"],
errorMessage = "Password and/or Username\
mySql.close()
app = main.webapp2.WSGIApplication([('/', Main),
("/authenticate",Authenticate),
(".*",main.Error_404)],
debug=True)
당신은 절대적으로 옳습니다. 나는 문서에있는 것들을 언급하지 않았다. 나는 거기에없는 것들에 초점을 맞추었고 소스 코드를 조사해야했다. –