DaiziaD
ZITADEL16mo ago
4 replies
Daizia

how do I get standard token using loginname and password?

I mean this document is point to how to get session token
https://zitadel.com/docs/guides/integrate/login-ui/username-password
but it can't use as user token
like the one from /oauth/v2/token
that got from ubtrispection callback code

I also try this
https://zitadel.com/docs/guides/integrate/login-ui/oidc-standard#get-auth-request-by-id
and it said Auth Request does not exist
but I have send a requestAuthID that got from http request get /oauth/v2/authorize

here is my code (python django)
def post(self, request):
        data = json.loads(request.body.decode('utf-8'))

        payload = {
            "checks": {
                "user": {
                    "loginName": data['email']
                },
                "password": {
                    "password": data['password']
                }
            }
        }

        headers = {
            "Content-Type": "application/json",
            "Authorization": f"Bearer {serviceusertoken}"
        }

        response = requests.post(f"{settings.ZITADEL_DOMAIN}/v2/sessions", headers=headers, json=payload)

        status_code = response.status_code
        response_body = {}

        try:
            response_body = response.json()
        except json.JSONDecodeError:
            response_body = response.text

        print(f"Status Code: {status_code}")
        print("Response Body:", response_body)

        #get authRequestID https://zitadel.com/docs/guides/integrate/login-ui/oidc-standard#finalize-auth-request
        request_auth_id = requests.get(url, allow_redirects=True)
        redirected_url = request_auth_id.url
        requestAuthID = str(redirected_url)
        request_id = requestAuthID.split("authRequestID=")
        authRequestID = request_id[1]

        payload = json.dumps({
            "session": {
                "sessionId": response_body.get('sessionId'),
                "sessionToken": response_body.get('sessionToken')
            },
        })

        callbackurl = requests.post(f"{settings.ZITADEL_DOMAIN}/v2/oidc/auth_requests/{authRequestID}" , headers=headers , data=payload)
        try:
            callback_body = callbackurl.json()
        except json.JSONDecodeError:
            callback_body = callbackurl.text



        return JsonResponse({"status_code": status_code, "requestAuthID" : authRequestID , "body": response_body , "callback" : callback_body})
image.png
Was this page helpful?