Login into Hue using the Python Request library

Login into Hue using the Python Request library

In this little snippet we will show you how to login into HUE using python requests library.

Hue is based on the Django Web Framework. Django comes with user authentication system. Django uses sessions and middleware to hook the authentication system into request object. HUE uses stock auth form which uses “username” and “password” and “csrftoken” form variables to authenticate.

In this code snippet, we will use well-known python “requests” library. we will first acquire “csrftoken” by GET “login_url”. We will create python dictionary of form data which contains “username”, “password” and “csrftoken” and the “next_url” and another python dictionary for header which contains the “Referer” url and empty python dictionary for the cookies. After POST request to “login_url” we will get status. Check the r.status_code. If r.status_code!=200 then you have problem in username and/or password.

Once the request is successful then capture headers and cookies for subsequent requests. Subsequent request.session calls can be made by providing cookies=session.cookies and headers=session.headers.

import requests

def login_djangosite():
 next_url = "/"
 login_url = "http://localhost:8888/accounts/login?next=/"

 session = requests.Session()
 r = session.get(login_url)
 form_data = dict(username="[your hue username]",password="[your hue password]",
                  csrfmiddlewaretoken=session.cookies['csrftoken'],next=next_url)
 r = session.post(login_url, data=form_data, cookies=dict(), headers=dict(Referer=login_url))

 # check if request executed successfully?
 print r.status_code

 cookies = session.cookies
 headers = session.headers

 r=session.get('http://localhost:8888/metastore/databases/default/metadata', 
 cookies=session.cookies, headers=session.headers)
 print r.status_code

 # check metadata output
 print r.text

3 Comments

  1. Interested 1 year ago

    While this is doable, is there an actual usable API in Hue? Is there a documentation link to one?

    • Author
      Hue Team 1 year ago

      There is no official API yet, this is scheduled for Hue 4 or 5

  2. atom 1 year ago

    how can i use this auth in flask to login hue

Leave a reply

Your email address will not be published. Required fields are marked *

*