0
这里是最初的代码,从the Example不能得到的OAuth2用户FB龙卷风例如
class AuthLoginHandler(BaseHandler, tornado.auth.FacebookGraphMixin):
@tornado.web.asynchronous
def get(self):
my_url = (self.request.protocol+"://"+self.request.host+"/auth/login?next="+tornado.escape.url_escape(self.get_argument("next", "/")))
print my_url
if self.get_argument("code", False):
self.get_authenticated_user(redirect_uri=my_url,client_id=facebook_api_key, client_secret=facebook_secret,code=self.get_argument("code"),callback=self._on_auth)
print "th"
print self.get_argument("code")
return
self.authorize_redirect(redirect_uri=my_url,client_id=facebook_api_key,extra_params={"scope": "read_stream"})
def _on_auth(self, user):
if not user:
raise tornado.web.HTTPError(500, "Facebook auth failed")
self.set_secure_cookie("user", tornado.escape.json_encode(user))
self.redirect(self.get_argument("next", "/"))
什么我不明白的是:
if self.get_argument("code", False):
这是什么意思?因为如果我让self.get_argument("code")
我得到的错误,有缺少参数代码
为什么否定,然后调用这个说法code=self.get_argument("code")
我检查的文件,和我了解的是,False
通过改变Strip=True
默认!
请问你能解释一下代码吗?
所以这是一种如果用户还没有登录,显示登录页面? – 2013-02-26 18:46:09
是的 - 但请记住它是从Facebook提供的登录页面,而不是您的应用程序 – 2013-02-27 09:14:31
和龙卷风将使用生成的cookie – 2013-02-27 10:30:58