Код авторизации с pkce, возвращающим неверный верификатор кодаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Код авторизации с pkce, возвращающим неверный верификатор кода

Сообщение Anonymous »

Я пытаюсь создать токен доступа для использования с API Spotify, используя код авторизации с помощью pkce. После завершения запроса на публикацию я получаю ответ о том, что верификатор кода недействителен. Я новичок в этом, поэтому понимаю, что часть моего кода — не самый эффективный способ выполнения задач.

Код: Выделить всё

from dotenv import load_dotenv
import os
import base64
import requests
import random
import hashlib
from urllib.parse import urlparse, urlunparse, urlencode

load_dotenv()
#retrieves client id and secret from .env file

client_ID = os.getenv("CLIENT_ID")
client_secret = os.getenv("CLIENT_SECRET")

def Generate_Random_String(length):
possible_Values = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~"
values = []
while len(values) < length:
index = random.randint(0,65)
random_Value = (possible_Values[index])
values.append(random_Value)
values = str(values)
return (values)
#create an array of random values of length given by parameter

code_Verifier = Generate_Random_String(64)
perm_code_verifier = open("Code Verifier.txt","w")
perm_code_verifier.write(code_Verifier)
#stores code verifier in a text file for more permanent access

def code_hash(plain):
#will use sha256 hash to encode a value
plaintext = str(plain)
object = hashlib.sha256(plaintext.encode("utf-8"))
hex_dig = object.hexdigest()
return(hex_dig)

def base64encode(hashed):
#encodes this in base64
hashed = str(hashed)
auth_bytes = hashed.encode("utf-8")
auth_base64 = str(base64.b64encode(auth_bytes),"utf-8")
array = auth_base64
array = array.replace("+","-")
array = array.replace("/","_")
array = array.rstrip("=")
#replaces these characters so it can be used in a url
return array
`

hashed = code_hash(code_Verifier)
codeChallenge = base64encode(hashed)
#retrieves the code challenge

scope = "user-read-private user-read-email"
authURL = urlparse("https://accounts.spotify.com/authorize")
redirectURI = "http://localhost:3000"
#scope user agrees to and url for general spotify log in page

parameters = {
"response_type": "code",
"client_id": client_ID,
"scope": scope,
"code_challenge_method": "S256",
"code_challenge": codeChallenge,
"redirect_uri" : redirectURI,
}

authUrl_incl_params = authURL._replace(query=urlencode(parameters))
final_url = urlunparse(authUrl_incl_params)
#creates final url for my program to allow them to log in using appropriate scopes

print("Go to ", final_url, "to authenticate")
code = input("Enter code recieved:")

def get_token(code):
file = open("Code Verifier.txt")
codeVerifier = file.read()

url = "https://accounts.spotify.com/api/token"

payload = {
"client_id": client_ID,
"grant_type": "authorization_code",
"code": code,
"redirect_uri": redirectURI,
"code_verifier":codeVerifier,
}

headers = {
"Content-Type": "application/x-www-form-urlencoded",
}

try:
response = requests.post(url,data=payload,headers = headers)
response_ans = response.json()
print (response_ans)
token = response_ans.get("access_token")
return(token)

except:
print("Error with code")

token = get_token(code)
print (token)
Мое значение токена всегда возвращается как «нет», и я получаю ответ_ответов, сообщающий, что code_verifier недействителен

Подробнее здесь: https://stackoverflow.com/questions/792 ... e-verifier
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Код авторизации с pkce, возвращающим неверный верификатор кода
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Код авторизации с pkce, возвращающим неверный верификатор кода
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Код авторизации с PKCE возвращающим неверный код Verifier
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Supabase Auth ExchangeCodeForSession возвращает «неверный запрос: код аутентификации и верификатор кода должны быть непу
    Anonymous » » в форуме Javascript
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous
  • Как правильно настроить OAuth 2.0 — код авторизации с потоком PKCE в Azure?
    Anonymous » » в форуме Android
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»