我試圖測驗幾個需要用戶在Django中獲得授權的端點:
def test_one(self) -> None:
client = Client()
user = client.post('/create'/span>, {
'username': 'bob.smith',
'email': '[email protected]',
'password': 'password'。
})
token = client.post('/gettoken'/span>, {
'identity': 'bob.smith',
'password': 'password'。
})
x = token.json()
resp = client.get('/changepassword', headers={"Authorization": f"Bearer {x['access']}")
self.assertEqual(resp.status_code, 200)
但是,它一直回傳一個403:
{"detail":"沒有提供認證憑據。 "}
x的內容是:
{'refresh'。'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9. eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTYzMTI0MTIwNSwianRpIjoiNDdjNzM5NThkNmYyNGJiMzkxMzRlM2Y2NThhZWI1MjEiLCJ1c2VyX2lkIjoxLCJuYW1lIjoiYm9iYnkuc21pdGgiLCJlbWFpbCI6ImJvYkBzZWNkaW0uY29tIiwiZ3VpZCI6NjA2NzU1ODI4NX0。 lqdU5EfSA3DRbfxqum6XyvBc28t-vam8GVDq4W-NOsz7j9VTcg-i9AYQO0V-PLF7Lo89i6Pq50u0tZop7X5PMUryc3sCWPPnEsPyTm7Fi_cV054E8chd- BP9fzykwW7ef7ufLTjzzPJfQdniq48jlRmce8Yjv_SspwoAhU2uYO54jtn2NNMRk80NckKyzxy9TwU9tItlPMCtoeK1SCucVsv- PfTJscxEXcaC347AZ0Dytqm2DVyDzQbt8RE9MKOXbHkhijeaftNBuiOMqJXE7NWQQ37iyF8bF2iPsc0M-T7ECFwsfFgPK_TD93ETCl9k_o6_6yxOHvx83dk6vGyzONJgl0MJ_W_y_B1UibQttBMoDfMwCxkM7akQ1OhL3ccb7GW- nGgqlOVREfxxW5xCN6h7O9cPMVk74jQ4xv2N6SlkEWIqb5UhQ4ZIJvFVrw-BOHLY_AqvnMadD9gYn7MaDPGXlpCX2EqOvOmKinASuSTJ94kXZ9pwMzuo_b-j5DnQWKgShZydpMZT77TZ8_MZUtBBf7W- E_z71auQrgopgq82hHEpDfq3FoY4NXUq1IOEaJxJVpFcboXKep4WXQmRliRyqfIbwEAg7DOOiQ6cKrvbScPUKCpfYfzrt2f9fQbgtwwZYxHgW3-sLRP8r10UQzMaa8yR8ot-oQIq4xy5U'/span >。'access'。'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9. eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjMxMTU2NjA1LCJqdGkiOiJkZDliMWI3Yjc0N2E0YjcxYjJhZjg3ZGM0ZjUzODdmZiIsInVzZXJfaWQiOjEsIm5hbWUiOiJib2JieS5zbWl0aCIsImVtYWlsIjoiYm9iQHNlY2RpbS5jb20iLCJndWlkIjo2MDY3NTU4Mjg1fQ. dnlYgqfTvrQPBmAsZgJ5N39dtMANbBYE0kW3ZPCkAX8KWEsQrJwPQRbMYW_AetjowEkiSaWEQs8T4Hs553guW8lpdzg4_SiKjIXXodJkfGNq9rDC9bpmLSJigVvpCM- AkgXsNUbZKrzP97fk5CZrVvyGszNlT1Oe66OSQrNQuaIqXSQ20XjuwzpSfEB3qJeC45LMgvHRBbEG0V2jOD5ReBxGJGoOPXVYS7vfy7dLCq2iT- Kkpny4fALKjfM4bpux6UG5kJWrCLp2ybtCLTgJ9y4pvAhzEzmb1IeqtRV-gHQtaqTbMQl5cIhHdvmtMbBSQrzdG3yqObKoyMW4oQLu8txKE4huptaInJcnXo4j2PFMPD- x3TtJOqOPYbfgb9Vu1-FCT0um5ZPnr9jv6j0ll92CuuHa7rBRatmzvLIJblpJ-ta6IkIZC6XkeEg3Sfg- dbnpSYaJ5fNxQm7r35oGj2j7r8fnvxlnYGPhmXJEdyas798Z001_TXrnHKsv2a1zNNJHQuK8sTmgAC4R1Fs0JQF4yBmIJ4TverKdiGOUHqYAYoEjNX69hdXeu_4AsAdUiRRzSYNbmuZFTEd- iREz0VgMs7QBIecVBzz33kFfgdYTy64qq9NDz3HIkzPbvw4xdGEFp8UTJlCffdkzAT8pb_czC4xufdm9bSvK5E'}?
有什么想法嗎,為什么它說沒有提供認證細節?
uj5u.com熱心網友回復:
如果你使用django休息框架,使用APIClient而不是Client
client.credentials(HTTP_AUTHORIZATION='Bearer' x['access'] )
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/318677.html
標籤:
