官术网_书友最值得收藏!

  • Python Programming Blueprints
  • Daniel Furtado Marcus Pennington
  • 288字
  • 2021-06-24 18:53:49

Authenticating with Spotify's web API

Now that we have the code to load the configuration file for us, we are going to start coding the authentication part of our framework. Spotify currently supports three kinds of authentication: authorization code, client credentials, and implicitly grant. We are going to implement authorization code and client credentials in this chapter, and we will start by implementing the client credentials flow, which is the easiest to start with.

The client credentials flow has some disadvantages over the authorization code flow because the flow does not include authorization and cannot access the user's private data as well as control playback. We will implement and use this flow for now, but we will change to authorization code when we start implementing the terminal player.

First, we are going to create a file called authorization.py in the musicterminal/pytify/auth directory with the following contents:

from collections import namedtuple


Authorization = namedtuple('Authorization', [
'access_token',
'token_type',
'expires_in',
'scope',
'refresh_token',
])

This is going to be the authentication model and it will contain the data we get after requesting an access token. In the following list, you can see a description of every property:

  • access_token: The token that has to be sent together with every request to the Web API
  • token_type: The type of the token, which is usually Bearer
  • expires_in: The access_token expiration time, which is 3600 seconds (1 hour)
  • scope: The scope is basically the permissions that Spotify's user granted to our application
  • refresh_token: The token that can be used to refresh the access_token after the expiration

The last touch is to create a __init__.py file in the musicterminal/pytify/auth directory and import the Authorization , which is a namedtuple:

from .authorization import Authorization
主站蜘蛛池模板: 泰兴市| 广灵县| 海安县| 大理市| 彩票| 凌云县| 昂仁县| 达孜县| 元谋县| 洛扎县| 绥宁县| 内江市| 梁平县| 墨竹工卡县| 湟中县| 田东县| 广昌县| 泗阳县| 鄂伦春自治旗| 左权县| 平利县| 沐川县| 新干县| 尉犁县| 泸溪县| 金湖县| 宜州市| 湛江市| 南城县| 凤城市| 浦江县| 山丹县| 龙泉市| 新丰县| 南乐县| 龙门县| 南部县| 旬邑县| 射洪县| 额敏县| 霍林郭勒市|