0
私の自宅のラップトップからEC2インスタンスに存在する私のjwt認証されたdjango APIを呼び出そうとしています。 APIは私に認証キーを返しますが、認証キーを使用しようとすると、認証されていないIMに通知されます。私はこれを動作させるために使用しようとしている様々なメソッドの例を提供しました。Python JWT認証トークンがdjango jwt apiで認証されない
特にこのコードで間違ったことをしていますが、これは私のコードが一貫して401エラーを返すことを保証しますか? JWTトークンを使用して認証されたAPIを要求するときに、具体的に何かが必要な場合や、返す値を取得できるようにヘッダーを設定する必要がある特定の方法がある場合は、またはこれはバックエンドの問題のように見えますか?
import requests
from urllib2 import Request, urlopen
import jwt
from requests_jwt import JWTAuth, payload_method
import json
def tryme(chats, payload, jwt):
#method1
res = requests.post(chats, json=payload)
print res.status_code
# error 401
# method2
req = requests.get(chats, params=payload)
print req.status_code
# error 401
# method3
req = Request(chats)
req.add_header('Authorization', 'Token token={}'.format(auth['token']))
req.add_header('content-type', 'application/json')
res = urlopen(req)
print res.status_code
# error 401
#method4
token = JWTAuth(jwt['token'])
out = requests.get(chats, auth=token)
print out.status_code
# error 401
out = requests.post(chats, auth=token)
print out.status_code
# error 401
def main():
payload = {
'username': 'testuser',
'password': 'test1234'
}
base_url = 'https://www.example.com/api/v1/'
api_auth = base_url + 'api-token-auth/'
chats = base_url + 'chats/'
auth = json.loads(requests.post(api_auth, json=payload).content)
# returns auth token
payload = {'Authorization': 'Token {}'.format(auth['token']), 'content-type': 'application/json'}
tryme(chats, payload, auth)
payload = {'Authorization': 'Bearer {}'.format(auth['token']), 'content-type': 'application/json'}
tryme(chats, payload, auth)
payload = {'Authorization': 'JWT {}'.format(auth['token']), 'content-type': 'application/json'}
tryme(chats, payload, auth)
if __name__ == '__main__':
main()
デフォルトヘッダスキームは '認可あります。方法3では、それを使用することができます。 –
完璧。私はそれを洗練することを見ます。それがうまくいくなら、私はあなたに知らせてくれます。あなたは私のための答えを作り出すことができます – castaway2000