When attempting to authenticate with the Box API, user encounter a “redirect_uri_mismatch” error. Here are the steps to reproduce :
-
Set up a Box application and configure the redirect URI to http://localhost:8000/
-
Create the minimal example to reproduce the error
- settings.py
BOX_CLIENT_ID = 'YOUR_BOX_CLIENT_ID'
BOX_CLIENT_SECRET = 'YOUR_BOX_CLIENT_SECRET'
- views.py
from django.shortcuts import redirect
from django.conf import settings
from boxsdk import OAuth2
def authenticate_with_box(request):
oauth = OAuth2(
client_id=settings.BOX_CLIENT_ID,
client_secret=settings.BOX_CLIENT_SECRET,
)
auth_url, csrf_token = oauth.get_authorization_url(redirect_url=request.build_absolute_uri(reverse('upload')))
request.session['csrf_token'] = csrf_token
return redirect(auth_url)
def upload(request):
return render(request, "upload.html", {'access_token': request.session["access_token"]})
- urls.py
from django.urls import path
from .views import authenticate_with_box
urlpatterns = [
path('', authenticate_with_box, name='authenticate_with_box'),
path('upload/', views.upload, name='upload'),
]
- Run the server
python manage.py runserver