A configurable Django Allauth provider for Vipps Login.
Project description
Django Allauth Vipps Provider
A complete django-allauth provider for Vipps Login, supporting both traditional web and modern API (dj-rest-auth) authentication flows.
This package provides a configurable, reusable Django app that allows users to sign in to your project using their Vipps account, making it easy to integrate Norway's most popular payment and identity solution.
Features
- Integrates seamlessly with
django-allauth's social account framework. - Supports API-first authentication flows via
dj-rest-auth. - Configurable for both Vipps Test and Production environments via standard settings.
- Correctly handles Vipps' required
client_secret_basicauthentication method for REST APIs. - Fully tested and documented for a "drop-in" experience.
1. Installation & Setup
Step 1: Install the Package
pip install django-allauth-vipps
(Or poetry add django-allauth-vipps if you use Poetry)
Step 2: Update INSTALLED_APPS
Add vipps_auth to your INSTALLED_APPS in your Django settings.py.
# settings.py
INSTALLED_APPS = [
# ...
'allauth',
'allauth.account',
'allauth.socialaccount',
'vipps_auth',
]
SITE_ID = 1
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
]
Step 3: Configure the Provider
Configure the provider using django-allauth's standard SOCIALACCOUNT_PROVIDERS setting in your settings.py.
# settings.py
import os
SOCIALACCOUNT_PROVIDERS = {
'vipps': {
# Configure credentials using environment variables.
'APPS': [
{
'client_id': os.getenv('VIPPS_CLIENT_ID'),
'secret': os.getenv('VIPPS_CLIENT_SECRET'),
'key': ''
}
],
# --- General Provider Settings ---
'TEST_MODE': False, # Set to True for development/testing
'VERIFIED_EMAIL': True,
'EMAIL_VERIFIED_REQUIRED': True,
'SCOPE': [
'openid',
'name',
'email',
'phoneNumber',
],
}
}
Important: For credentials, either use the
APPSkey insettings.py(recommended) or create aSocialAppin the Django Admin. Using both for the same provider will cause an error.
Step 4: Configure on Vipps Developer Portal
- Log in to the Vipps MobilePay Developer Portal.
- Get your Client ID and Client Secret.
- Set the Token endpoint authentication method to
client_secret_basic. - Add your Redirect URI (
https://yourdomain.com/accounts/vipps/login/callback/for web flows, or your frontend URL for API flows).
Step 5: Run Migrations
python manage.py migrate
2. Usage
For Traditional Django Websites
Use the provider_login_url template tag.
{% load socialaccount %}
<a href="{% provider_login_url 'vipps' %}">Log In with Vipps</a>
For REST APIs (with dj-rest-auth)
When using dj-rest-auth, you must use the custom VippsOAuth2Client provided by this package to ensure the correct authentication method (client_secret_basic) is used.
In your project's urls.py, create your login view like this:
# your_project/urls.py
from django.urls import path
from dj_rest_auth.registration.views import SocialLoginView
from vipps_auth.views import VippsOAuth2Adapter
from vipps_auth.client import VippsOAuth2Client # <-- Import the custom client
# This view connects dj-rest-auth to our Vipps adapter
class VippsLoginAPI(SocialLoginView):
adapter_class = VippsOAuth2Adapter
client_class = VippsOAuth2Client # <-- Use the custom client here
callback_url = "YOUR_FRONTEND_CALLBACK_URL"
urlpatterns = [
# ... your other urls
path("api/v1/auth/vipps/", VippsLoginAPI.as_view(), name="vipps_login_api"),
]
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_allauth_vipps-0.2.2.tar.gz.
File metadata
- Download URL: django_allauth_vipps-0.2.2.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.11.6 Linux/5.4.0-204-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64c244f53a4a43b7d9294ecfc2c7ab8d181a459271d36ef44f342faf274a5cd6
|
|
| MD5 |
38cf7a0e5b8763e0ba36846278c8bd8a
|
|
| BLAKE2b-256 |
8801e10e220440658126563bfc3c55410078c45b0245deb8f3af32ec49b1a05b
|
File details
Details for the file django_allauth_vipps-0.2.2-py3-none-any.whl.
File metadata
- Download URL: django_allauth_vipps-0.2.2-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.11.6 Linux/5.4.0-204-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c56e900776521841b3f688783dc98ffa8aceaa04536d31007406406ef1a3933a
|
|
| MD5 |
18f0d2e7e49ba9c2996a493c065fb79c
|
|
| BLAKE2b-256 |
715ea9ded27f8024a3f2b4f6a0daa56d4bd78f5801adb90b27024ffd2e9b5384
|