handlersoauth.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:enkiWS 作者: juliettef 项目源码 文件源码
def auth_request( self ):
        # STEP 1
        # note: these parameters need to be sorted alphabetically by key. They are therefore a list of tuples and not a dictionary.
        params = [( 'oauth_callback' , self.domain_name[ :-1 ] + self.get_auth_callback()),
                  ( 'oauth_consumer_key' , settings.secrets.CLIENT_ID_TWITTER ),
                  ( 'oauth_nonce' , webapp2_extras.security.generate_random_string( length = 42, pool = webapp2_extras.security.ALPHANUMERIC ).encode( 'utf-8' )),
                  ( 'oauth_signature_method' , "HMAC-SHA1" ),
                  ( 'oauth_timestamp' , str( int( time.time()))),
                  ( 'oauth_version' , "1.0" )]
        normalised_url = 'https://api.twitter.com/oauth/request_token/'
        oauth_signature = self.auth_sign( normalised_url, params )
        params.append(( 'oauth_signature', oauth_signature ))
        url_params = enki.libutil.urlencode( params )
        result = self.urlfetch_safe( url = normalised_url, payload = url_params, method = urlfetch.POST )
        response = self.process_result_as_query_string( result )
        # STEP 2
        if response.get( 'oauth_callback_confirmed' ) != 'true' :
            self.abort( 401 )
            return
        else:
            oauth_token = response.get( 'oauth_token' )
            self.session[ 'twitter_oauth_token' ] = oauth_token
            self.session[ 'twitter_oauth_token_secret' ] = response.get( 'oauth_token_secret' )
            url_redirect_params = enki.libutil.urlencode([( 'oauth_token', oauth_token )])
            url_redirect = 'https://api.twitter.com/oauth/authenticate?' + url_redirect_params
            self.redirect( url_redirect )
        return
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号