Hi, I am struggling with this for a while, maybe someone would be abloe to help.
In short, i try use flask with oauth but failed on getting token back, moved to django, and I was able to pass token. Now I am receiving token and try to request user profile, but getting Resposne 403 cant figure out why, My code: from django.shortcuts import render from django.http import HttpRequest, HttpResponse, JsonResponse from django.shortcuts import redirect import requests # Create your views here. redirect_url_peeringdb = 'https://auth.peeringdb.com/oauth2/authorize/auth?response_type=code&client_id=<client_id>&redirect_uri=https://localhost:8000/oauth2/login/redirect&scope=email&state=1234zyx' client_id = "<client_id>" client_secret = "<client_secret>" def home(request: HttpRequest) -> JsonResponse: return JsonResponse({ "msg": "Hello World" }) def peeringdb_login(request: HttpRequest): return redirect(redirect_url_peeringdb) def peeringdb_login_redirect(request: HttpRequest): code = request.GET.get('code') print("### 1 ### code: ", code) user = exchange_code(code) print("### 2 ### email: ", user) return JsonResponse({ "user": user}) def exchange_code(code: str): print("### 3 ### code: ", code) data = { "client_id": "<client_id>", "client_secret": "<client_secret>", "grant_type": "authorization_code", "code": code, "redirect_uri": "https://localhost:8000/oauth2/login/redirect", "scope": "email" } headers = { 'Content-Type': 'application/x-www-form-urlencoded' } response = requests.post("https://auth.peeringdb.com/oauth2/token/", data=data, headers=headers) print("### 4 ### response: ", response) print("### 5 ### response.json: ", response.json()) credentials = response.json() print("### 6 ### credentials: ", credentials) access_token = credentials['access_token'] print("### 7 ### access_token: ", access_token) response1 = requests.get("https://auth.peeringdb.com/profile/v1", headers={ "Authorization": "Bearer %s" % access_token }) print("### 8 ### response1: ", response1) print("### 9 ### response1: ", response1.json()) user = response1.json() print("### 10 ### user: ", user) i am getting error: 127.0.0.1 - - [26/Jun/2023 21:21:16] "GET /oauth2/login HTTP/1.1" 302 - ### 1 ### code: <code> ### 3 ### code: <code> ### 4 ### response: <Response [200]> ### 5 ### response.json: {'access_token': '<access_token>', 'expires_in': 36000, 'token_type': 'Bearer', 'scope': 'email', 'refresh_token': '<refresh_token>'} ### 6 ### credentials: {'access_token': '<access_token>', 'expires_in': 36000, 'token_type': 'Bearer', 'scope': 'email', 'refresh_token': '<refresh_token>'} ### 7 ### access_token: <access_token> ### 8 ### response1: <Response [403]> 127.0.0.1 - - [26/Jun/2023 21:21:17] "GET /oauth2/login/redirect?code=<code>&state=1234zyx HTTP/1.1" 500 - Traceback (most recent call last): File "/Users/miklab01/Library/Python/3.9/lib/python/site-packages/requests/models.py", line 971, in json return complexjson.loads(self.text, **kwargs) File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 346, in loads return _default_decoder.decode(s) File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) any one have idea where i am missing something? i think issue might be with the url i send and autorization... ? https://auth.peeringdb.com/profile/v1/
_______________________________________________ Pdb-tech mailing list [email protected] https://lists.peeringdb.com/cgi-bin/mailman/listinfo/pdb-tech
