How to print/capture the user who is using the Webapp from browser header
![srdheekonda](https://us.v-cdn.net/6038231/uploads/Dataiku/nAvatar4.png)
Hi All,
I'm using dataiku version 9.0.7 and have a requirement to print/capture the user who is using/accessing the Dash webapp to apply data security filter. I tried using below code but below code always returns who is initiated the web app but not the user who is using it.
client=dataiku.api_client() auth_info=client.get_auth_info() browser_user=auth_info["authIdentifier"]
I also tried using below code but below code is not working for me. Please help me on this.
#new_browser_user=client.get_auth_info_from_browser_headers(headers_dict, with_secrets=False)
Thanks in advance!
Operating system used: Windows
Answers
-
Hi,
Here is a very small example to retrieve the authenticated user :
import logging from flask import request from dash.dependencies import Input, Output, State @app.callback( Output('my-output', component_property='children'), [Input('dummy', 'children')] ) def get_logged_user(_): request_headers = dict(request.headers) auth_info_browser = dataiku.api_client().get_auth_info_from_browser_headers(request_headers) logging.info((auth_info_browser)) return auth_info_browser["authIdentifier"] app.layout = html.Div(children=[ html.Div(id='my-output'), html.Div(id="dummy") ])
To be able to retrieve the authenticated user, you need to set up a callback (@app.callback) that reacts to the load. That is why we set a "dummy" input, as this input will never change, and the callback will be executed once. You have to use a callback to access the request object.
You can not use this code (underneath) as it will retrieve the defined user on the settings page
client=dataiku.api_client() auth_info=client.get_auth_info()
Best,
Florent