]> 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:45:37 +0000 (21:45 -0400)
Fixes #1992

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

index 44144061e644a69c403712c191dad0e81d420a11..63be23893e5787e630743ea7f33ddea44319740d 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 92616fa30632e005a4f35d80dd3a61cd915530bd..154954b76a969c056e61f085d98cab19c971b26a 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):