]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
auth: Facebook now returns auth tokens in json instead of url-encoded
authorDayne Jones <daynejones@users.noreply.github.com>
Thu, 30 Mar 2017 01:43:07 +0000 (21:43 -0400)
committerBen Darnell <ben@bendarnell.com>
Thu, 30 Mar 2017 01:43:07 +0000 (21:43 -0400)
Fixes #1992

tornado/auth.py
tornado/test/auth_test.py

index d71d56a668b4388106d6bc3b1d96271ddaf81248..554db5926e358fbbaf5ea9c6f630cc0d9b31ad40 100644 (file)
@@ -978,9 +978,9 @@ class FacebookGraphMixin(OAuth2Mixin):
             future.set_exception(AuthError('Facebook auth error: %s' % str(response)))
             return
 
-        args = urlparse.parse_qs(escape.native_str(response.body))
+        args = escape.json_decode(response.body)
         session = {
-            "access_token": args["access_token"][-1],
+            "access_token": args.get("access_token"),
             "expires": args.get("expires")
         }
 
index d18b7b971f012b1c13fb8f4a61245add3befc810..14dd2f625ae1eae4439c12ad41dbea87b1297711 100644 (file)
@@ -149,7 +149,7 @@ class FacebookClientLoginHandler(RequestHandler, FacebookGraphMixin):
 
 class FacebookServerAccessTokenHandler(RequestHandler):
     def get(self):
-        self.write('access_token=asdf')
+        self.write(dict(access_token="asdf"))
 
 
 class FacebookServerMeHandler(RequestHandler):