Behandeln Sie den Auth -Workflow mit Django API und reagieren SiePython

Python-Programme
Anonymous
 Behandeln Sie den Auth -Workflow mit Django API und reagieren Sie

Post by Anonymous »

Ich habe eine Frontend -App in React Ich habe eine Backend -Anwendung, die ein Django -Server ist. Darüber hinaus arbeite ich mit einer True Layer (Open Banking API)
mit einer Drittanbieter zusammen, die ich als erstes implementieren möchte, ist die Authentifizierung, die ich richtig gemacht habe.
Ich versuche jedoch, eine Methode zu schreiben So aktualisieren Sie meine access_token dank der von der Truelayer -API angegebenen AUFFRESH_TOOKEN beim ersten Authentifizieren. Eine gute Praxis ist, dass die Refresh_Token in den HTTP -Keksen gespeichert wird. Also habe ich so etwas gemacht < /p>

Code: Select all

def truelayer_callback(request):
code = request.GET.get('code')
token_data = {
"grant_type": "authorization_code",
"client_id": settings.TRUELAYER_CLIENT_ID,
"client_secret": settings.TRUELAYER_CLIENT_SECRET,
"redirect_uri": REDIRECT_URI,
"code": code,
}
try:
data = requests.post(TOKEN_URL, data=token_data).json()
access_token = data.get('access_token')
refresh_token = data.get('refresh_token')
if access_token:
query_params = urlencode({'token' : access_token})
response = HttpResponseRedirect(f'{FRONTEND_URL}?{query_params}')
response.set_cookie(key='refresh_token', value=refresh_token, httponly=True, secure=False, samesite='Lax')
return response
return HttpResponseRedirect(f'{FRONTEND_URL}?error=No access token received')
except Exception as e:
return HttpResponseRedirect(f'{FRONTEND_URL}?error={str(e)}')
Ich habe das Cookie refresh_token in der Antwort gesetzt. Aber in meiner nächsten Methode, die die Methode ist, die aufgerufen wurde, um die Access_Token zu aktualisieren, wenn ich versuche, auf meine ReABSH_TOOKE aus Cookies zuzugreifen, erhalte ich keine:

Code: Select all

def check_refresh_cookie(request):
refresh_token = request.COOKIES.get("refresh_token") # is None
token_data = {
"grant_type": "refresh_token",
"client_id": settings.TRUELAYER_CLIENT_ID,
"client_secret": settings.TRUELAYER_CLIENT_SECRET,
"refresh_token": refresh_token,
}
try:
response =  requests.post(TOKEN_URL, data=token_data)
return JsonResponse({'access_token' : response.json()})
except Exception as e:
return  HttpResponseRedirect(f'{FRONTEND_URL}?error={str(e)}')
Ich bin im Moment ein bisschen verloren, wie ich fortfahren soll, um das Aktualisierungspreis zu befestigen und meine access_token
Ich habe keinen Code von vorne eingeleitet, weil es sich im Grunde genommen um eine Taste mit einer Onclick -Methode handelt.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post