Home > Backend Development > Python Tutorial > Tornado login Douban code example

Tornado login Douban code example

高洛峰
Release: 2016-10-17 14:33:18
Original
1267 people have browsed it

Share a piece of code for tornado to log into Douban. It only implements simple login and does not implement asynchronous login. Netizens who need it can improve the code themselves.

Go directly to the code:

#coding=utf8
import settings
import urllib
from tornado import httpclient
import json
  
class douban:
    authurl = 'https://www.douban.com/service/auth2/'
    user_info_url = 'https://api.douban.com/v2/user/~me'
  
    def get_authorization_code(self):
        params = {
            "client_id":settings.oauth2['douban']['key'],
            "redirect_uri":settings.oauth2['redirect_url'],
            "response_type":"code",
            "scope":"douban_basic_common",
        }
        return self.authurl+'auth?'+urllib.urlencode(params)
  
    def get_access_token(self,code):
        params = {
            "client_id":settings.oauth2['douban']['key'],
            "client_secret":settings.oauth2['douban']['sercet'],
            "redirect_uri":settings.oauth2['redirect_url'],
            "grant_type":"authorization_code",
            "code":code,
        }
        url = self.authurl+'token'
        http_client = httpclient.HTTPClient()
        req = httpclient.HTTPRequest(url,method='POST',body=urllib.urlencode(params))
        response = http_client.fetch(req)
        return json.loads(response.body)
              
    def get_user_info(self,access_token):
        url = 'https://api.douban.com/v2/user/~me'
        http_client = httpclient.HTTPClient()
        req = httpclient.HTTPRequest(url,headers={"Authorization":"Bearer "+access_token})
        response = http_client.fetch(req)
        return json.loads(response.body)
Copy after login


source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template