django rest frameworkで認証したアカウント情報を返す時に 401と返って来て詰まった箇所。
5466 ワード
現在djangoで作ったポートフォリオをspaに変換して作っていて、
最近ようやく思った挙動をしてくれたので、それでかなり詰まった箇所を備忘録として書いていこうと思います。
開発環境
@nuxt/cli v2.13.3
requirements.txt
Django>=2.0,<3.0
psycopg2>=2.7,<3.0
Pillow>=7.1.2
djangorestframework>=3.11.0
django-filter>=0.11.0
django-cors-headers>=3.0.0
djangorestframework-jwt>=1.11.0
djoser == 2.0.1
djangorestframework-simplejwt>=4.4.0
コンポーネントでログインページを作り、作ったページのurlをconfig.jsに渡しました。
nuxt.config.js
axios: {
baseURL: "http://0.0.0.0:8000"
//proxy: true
},
auth: {
redirect: {
login: { url: '/chat', method: 'post', propertyName: 'token' },
logout: { url: '/', method: 'post' },
callback: false,
home: '/chat',
},
strategies: {
local: {
endpoints: {
login: { url: '/api/login/', method: 'post', propertyName: 'token' },
user: { url: '/api/auth/users/me/', method: 'get', propertyName: false },
logout: false
},
}
}
}
error
get http://0.0.0.0:8000/api/auth/users/me/ 401
と出てくるので色々模索したら
どうやらapiの方に問題があったみたいです。
https://stackoverflow.com/questions/33265812/best-http-authorization-header-type-for-jwt
このページによると
クライアントがアクセストークン(JWTまたはその他のトークン)を送信するのに最適なHTTPヘッダーは> Authorization、Bearer認証スキームを含むヘッダーです。
このスキームはRFC6750で説明されています。
とのこと。
settings.py
JWT_AUTH = {
'JWT_VERIFY_EXPIRATION': False,
'JWT_AUTH_HEADER_PREFIX': 'Bearer', #変更前はJWT
}
と直したら動きました。
Author And Source
この問題について(django rest frameworkで認証したアカウント情報を返す時に 401と返って来て詰まった箇所。), 我々は、より多くの情報をここで見つけました https://qiita.com/gonbee1230/items/c6ac3d78dc64a0566588著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .