# coding=utf-8
class LoginBack(webapp.RequestHandler):
def post(self):
access_token = self.request.get('access_token')
openid = self.request.get('openid')
url = 'https://graph.qq.com/user/get_user_info?access_token=%s&oauth_consumer_key=%s&openid=%s'\
% (access_token, setting.qq_appid, openid)
response = urllib2.urlopen(url)
s = response.read() # .decode('gb2312').encode('utf8')
dic = json.loads(s)
if dic['ret'] == 0:
user = User()
user.nickname = dic['nickname']
user.face = dic['figureurl_2']
user.gender = dic['gender']
self.session = self.request.environ['beaker.session']
self.session['user'] = user
self.redirect('/')
else:
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write(u"登录失败:%s" % dic['msg'])
app = webapp.WSGIApplication([
('/', MainHandler),
],
debug=True)
session_opts = {
'session.type': 'ext:google',
'session.cookie_expires': True,
'session.auto': True,
}
app = SessionMiddleware(app, session_opts)
if sys.getdefaultencoding() != 'utf-8':
reload(sys)
sys.setdefaultencoding('utf-8')
<!DOCTYPE html>
<html>
<head>
<title>提示信息</title>
</head>
<body>
<div>
{% autoescape off %}
<p>{{message}}</p>
{% endautoescape %}
<p>
<a href="{{url}}">返回</a>
</p>
</div>
</body>
</html>
pattern = re.compile(r'access\_token\=(\w+)')
match = pattern.search(s)
if match:
access_token = match.group(1)