How to do a good callback function with django rest framework

I would like to write an api with django rest framework, I got some issues with my callback function. I can get the access code, but how to give it to my app? This is my callback function :

@api_view(['GET'])
def callback(request):
    if request.method == 'GET':
        code = request.GET.get("code")
        encoded_credentials = base64.b64encode(envi.SECRET_ID.encode() + b':' + envi.SECRET_PASS.encode()).decode("utf-8")
        token_headers = {
            "Authorization": "Basic " + encoded_credentials,
            "Content-Type": "application/x-www-form-urlencoded"
        }

        token_data = {
            "grant_type": "authorization_code",
            "code": code,
            "redirect_uri": "http://127.0.0.1:800/callback"
        }

        test = "test :" + code

        return JsonResponse(test, safe=False)

And this is my view where I try to do some stuff (I use spotify's API, with spotipy), I need to get the users name or mail :

@api_view(['GET'])
@permission_classes([permissions.IsAuthenticated])
def test(request):
    if request.method == 'GET': 
        test = "test " + request.user.username
        scope = "user-read-private"
        sp = getScope(scope)
        print(sp.current_user())
        urn = 'spotify:artist:3jOstUTkEu2JkjvRdBA5Gu'
        sp = spotipy.Spotify(auth_manager=SpotifyOAuth(client_id=envi.SECRET_ID, client_secret=envi.SECRET_PASS, redirect_uri=envi.SPOTIPY_REDIRECT_URI))
    
        artist = sp.artist(urn)
        print(artist)
        
        user = sp.current_user()
        return JsonResponse(user, safe=False)

def getScope(spotipyScope):
    token = SpotifyOAuth(scope=spotipyScope,client_id=envi.SECRET_ID, client_secret=envi.SECRET_PASS, redirect_uri=envi.SPOTIPY_REDIRECT_URI)
    spotifyObject = spotipy.Spotify(auth_manager= token)
    return spotifyObject

When I do a get on 127.0.0.1:8000/test/, I have a new page on my browser, from spotify, I connect my account, and then, it redirects me on 127.0.0.1:8000/callback/?code=some_code How can I give it to my first page waiting for the code so I can print the users stuff pls?

Back to Top