質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Q&A

解決済

1回答

1724閲覧

djangoのjwt認証が本番環境で機能しない

noobman

総合スコア1

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

0グッド

0クリップ

投稿2021/05/10 20:10

djangoとvue(vue/cli)で作成したSPAをherokuにデプロイしたのですがAPIのjwt認証が「500 (Internal Server Error)」(コンソールに表示)となり機能しません。
ページはちゃんと表示され、またjwt認証以外のdjangoのAPIエンドポイントへのリクエストはしっかり受け付けられるのですが、jwt認証のエンドポイントへのリクエストはエラーとなります。

使用しているjwt認証のパッケージは以下の通りです。

django-rest-framework-simplejwt 4.6.0
djoser 2.1.0(エンドポイント)

またdjangoのプロジェクトのurls.pyは以下の通りです

# config.urls from django.contrib import admin from django.conf import settings from django.conf.urls.static import static from django.urls import path, re_path, include from django.views.generic import TemplateView, RedirectView urlpatterns = [ path('admin/', admin.site.urls), path('', TemplateView.as_view(template_name='index.html')), path('api/v1/auth/', include('djoser.urls')), path('api/v1/auth/', include('djoser.urls.jwt')), path('api/v1/', include('apiv1.urls')),   # apiv1というdjangoのアプリケーションを作成済み re_path('', RedirectView.as_view(url='/')), ] if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

またaxiosのbaseURLとしてvueのプロジェクトに設定している本番環境の変数は以下です。

// .env.production VUE_APP_API_BASE_URL='/api/v1/'
// axiosの設定 import axios from 'axios'; const api = axios.create({ baseURL: process.env.VUE_APP_API_BASE_URL, timeout: 10000, headers: { 'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest' } });

伝わりずらい文面で申し訳ありませんが、もし何か思いつくことがあれば何でも構いませんので回答よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

settings.pyに設定していたDjoserのシリアライザをカスタマイズした設定が原因でした。
シリアライザの設定をDjoserのデフォルトの設定に戻すとエラーが発生しなくなりました。

投稿2021/05/11 20:05

noobman

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問