def GET(self): import vilidate,time,io if hasattr(web.ctx.session,'codeTime'): if (time.time() - web.ctx.session.codeTime) < 0.1: return public.getMsg('CODE_BOOM'); vie = vilidate.vieCode(); codeImage = vie.GetCodeImage(80,4) out = io.BytesIO(); codeImage[0].save(out, "png") web.ctx.session.codeStr = public.md5("".join(codeImage[1]).lower()) web.ctx.session.codeTime = time.time() web.header('Cache-Control', 'private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0'); web.header('Pragma', 'no-cache'); web.header('Content-Type','image/png'); return out.getvalue();
def code(): import vilidate vie = vilidate.vieCode() codeImage = vie.GetCodeImage(80, 4) try: from cStringIO import StringIO except: from StringIO import StringIO out = StringIO() codeImage[0].save(out, "png") session['code'] = mw.md5(''.join(codeImage[1]).lower()) img = Response(out.getvalue(), headers={'Content-Type': 'image/png'}) return make_response(img)
def GET(self): import vilidate,time if hasattr(web.ctx.session,'codeTime'): if (time.time() - web.ctx.session.codeTime) < 0.1: return public.getMsg('CODE_BOOM'); vie = vilidate.vieCode(); codeImage = vie.GetCodeImage(80,4); try: from cStringIO import StringIO except: from StringIO import StringIO out = StringIO(); codeImage[0].save(out, "png") web.ctx.session.codeStr = public.md5("".join(codeImage[1]).lower()) web.ctx.session.codeTime = time.time() web.header('Cache-Control', 'private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0'); web.header('Pragma', 'no-cache'); web.header('Content-Type','image/png'); return out.getvalue();
def code(): import vilidate, time code_time = cache.get('codeOut') if code_time: return u'Error: Don\'t request validation codes frequently' vie = vilidate.vieCode() codeImage = vie.GetCodeImage(80, 4) if sys.version_info[0] == 2: try: from cStringIO import StringIO except: from StringIO import StringIO out = StringIO() else: from io import BytesIO out = BytesIO() codeImage[0].save(out, "png") cache.set("codeStr", public.md5("".join(codeImage[1]).lower()), 180) cache.set("codeOut", 1, 0.1) out.seek(0) return send_file(out, mimetype='image/png', cache_timeout=0)