我正在尝试使用像这样的授权代码流对 spotipy 进行身份验证:
token = util.prompt_for_user_token(username, scope, client_id=client_id,
client_secret=client_secret,redirect_uri=redirect_url)
当我将任何字符串分配给“用户名”时,系统会要求我在弹出的浏览器中验证请求;一切正常。
当我在第二次运行我的代码之前将不同的字符串设置为“用户名”时,将针对先前经过身份验证的用户名(仍在浏览器会话中进行身份验证)进行身份验证;就好像根本没有考虑“用户名”的值一样。
此外,我似乎可以将任意值设置为“用户名”,如“pipapo”;当我登录到我的 Spotify 帐户(显然,它不是“pipapo”)时,这个帐户已通过身份验证,并且诸如current_user_saved_tracks()
确实获取帐户资源而不是“pipapo”的方法。
无论如何: access_token 和 refresh_token 被保存到缓存文件中.cache-pipapo
;从而将“曾经登录到浏览器的人”的凭据保存到以“错误”帐户命名的文件中。
那么:如果最终用户的交互式选择对代码的行为负责,那么这个参数有什么用呢?如果在身份验证过程中或多或少没有使用,为什么这甚至是必需的参数?