当前位置: 首页 > 知识库问答 >
问题:

授权码流

陈毅
2023-03-14

我正在使用Spotipy python库与Spotify web api进行交互。我已经研究过API和文档,但我没有看到一个清晰的示例来显示该库如何支持授权代码流(https://developer . Spotify . com/we b-API/Authorization-guide/# Authorization-code-flow)。

共有3个答案

李明贤
2023-03-14

当我试图这样做时,不幸的是,这些答案都没有真正让我到达那里。当我最终弄清楚它时,我在这篇文章中详细介绍了如何:https://stackoverflow.com/a/42443878/2963703 我使用Django作为我的后端,但所有spotify api oauth的东西都是用javascript完成的,所以它应该对你非常有用。

洪博艺
2023-03-14

如果有人需要工作代码,这里是我的当前代码。

只要记得修改client_id等就可以了。我把它们放在config.py中。

import spotipy
import spotipy.util as util
from config import CLIENT_ID, CLIENT_SECRET, PLAY_LIST, USER
import random

token = util.oauth2.SpotifyClientCredentials(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)

cache_token = token.get_access_token()
spotify = spotipy.Spotify(cache_token)

results1 = spotify.user_playlist_tracks(USER, PLAY_LIST, limit=100, offset=0)
慕朝明
2023-03-14

我在Spotipy的帮助下实现了一个简单的授权代码流。也许这对其他人也有帮助。同样在github上:https://github.com/perelin/spotipy_oauth_demo

代码如下:

from bottle import route, run, request
import spotipy
from spotipy import oauth2

PORT_NUMBER = 8080
SPOTIPY_CLIENT_ID = 'your_client_id'
SPOTIPY_CLIENT_SECRET = 'your_client_secret'
SPOTIPY_REDIRECT_URI = 'http://localhost:8080'
SCOPE = 'user-library-read'
CACHE = '.spotipyoauthcache'

sp_oauth = oauth2.SpotifyOAuth( SPOTIPY_CLIENT_ID, SPOTIPY_CLIENT_SECRET,SPOTIPY_REDIRECT_URI,scope=SCOPE,cache_path=CACHE )

@route('/')
def index():

    access_token = ""

    token_info = sp_oauth.get_cached_token()

    if token_info:
        print "Found cached token!"
        access_token = token_info['access_token']
    else:
        url = request.url
        code = sp_oauth.parse_response_code(url)
        if code:
            print "Found Spotify auth code in Request URL! Trying to get valid access token..."
            token_info = sp_oauth.get_access_token(code)
            access_token = token_info['access_token']

    if access_token:
        print "Access token available! Trying to get user information..."
        sp = spotipy.Spotify(access_token)
        results = sp.current_user()
        return results

    else:
        return htmlForLoginButton()

def htmlForLoginButton():
    auth_url = getSPOauthURI()
    htmlLoginButton = "<a href='" + auth_url + "'>Login to Spotify</a>"
    return htmlLoginButton

def getSPOauthURI():
    auth_url = sp_oauth.get_authorize_url()
    return auth_url

run(host='', port=8080)
 类似资料:
  • 我想更好地理解隐式授权流和授权代码授权流之间的区别,因为我不确定我目前的理解是否正确。 隐式授权流主要由前端应用程序用于验证用户身份吗? 隐式授权流是否只需要一个client_id、用户名和密码来进行身份验证,换句话说,永远不会发送client_secret? 授权码只是一个短期令牌吗? 将授权码交换为访问令牌后,客户端可以访问用户帐户多长时间?具体地说,如果客户端是一个长时间运行的脚本,那么用户

  • 本文向大家介绍oauth 授权码授予,包括了oauth 授权码授予的使用技巧和注意事项,需要的朋友参考一下 示例 第1步 第2步 资源

  • 授权码的传输应该建立在安全通道上,客户端应该要求在它的重定向URI上使用TLS,若该URI指示了一个网络资源。 由于授权码由用户代理重定向传输,它们可能潜在地通过用户代理历史记录和HTTP参照标头被泄露。 授权码明以纯文本承载凭据使用,用于验证在授权服务器许可权限的资源所有者就是返回到客户端完成此过程的相同的资源所有者。因此,如果客户端依赖于授权码作为它自己的资源所有者身份验证,客户端重定向端点必

  • 授权码通过使用授权服务器做为客户端与资源所有者的中介而获得。客户端不是直接从资源所有者请求授权,而是引导资源所有者至授权服务器(由在RFC2616中定义的用户代理),授权服务器之后引导资源所有者带着授权码回到客户端。 在引导资源所有者携带授权码返回客户端前,授权服务器会鉴定资源所有者身份并获得其授权。由于资源所有者只与授权服务器进行身份验证,所以资源所有者的凭据不需要与客户端分享。 授权码提供了一

  • 授权服务器将发布授权代码,授权服务器允许访问授权请求并授予对客户端应用程序的访问权以获取所有者资源。 通过使用客户端应用程序将所有者指向授权服务器,可以使用授权代码将资源所有者重定向到客户端应用程序。 授权代码的重要作用是对客户端进行身份验证并直接访问令牌,而不将其传递给所有者的用户代理。 下图显示了授权代码的过程。 Step 1 - 首先,用户使用客户端应用程序访问资源所有者的资源。 Step

  • 对于授权码授予,密钥是否应该映射到每个单独的用户? 发送电子邮件时,发件人的电子邮件是什么? 谢谢 J Larry的其他信息: 这太棒了!。Docusign对库存流进行了积极监控!我正在使用JWT 我配置了一个用户。我假设电子邮件正文将类似于下面的一个。 我的问题是,如果使用密钥来识别应用程序,客户知道电子邮件是从应用程序发送的,但他如何知道使用应用程序的哪个员工发送电子邮件? 请参阅以下电子邮件