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)}')
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 habe keinen Code von vorne eingeleitet, weil es sich im Grunde genommen um eine Taste mit einer Onclick -Methode handelt.