Skip to content
This repository has been archived by the owner on Sep 21, 2021. It is now read-only.
/ django-accounts Public archive

Full featured user app with built-in verification and activity stream

License

Notifications You must be signed in to change notification settings

risha700/django-accounts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Accounts

Accounts is a Django app handles essential user security

  • Email verification upon register
  • Phone is enforced and mandatory "handled by Twilio sms service"
  • Device access location "handled by geoip2 and maxmind db"
  • Activity stream for user access

Indeed it is opinionated user app as follows:

  • User class is AbstractUser has a Profile foreign key
  • Profile with has fields like photo and date_of_birth

Check the docs for deep details.

Quick start

  1. Add "accounts" to your INSTALLED_APPS setting like this:

    INSTALLED_APPS = [
        ...
        'accounts',
    ]
    
    TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['accounts/templates'],
        ...
    }]
    
  2. Include the accounts URLconf in your project urls.py like this:

    path('accounts/',
    include(('accounts.urls', 'accounts'), namespace='auth'))
    
  • Note: mind the namespace as it is used in templates and testing.
  1. Set mandatory settings:

    # refers to the user model
    AUTH_USER_MODEL = 'accounts.User'
    MEDIA_ROOT = os.path.join(BASE_DIR, "media")
    MEDIA_URL = '/media/'
    # this is on-demand auth backends
    AUTHENTICATION_BACKENDS = [
        'accounts.authentication.EmailAuthBackend',
        'accounts.authentication.PhoneAuthBackend',
        'accounts.authentication.UsernameAuthBackend',
    ]
    # your favorite email backend
    # just for testing it is set to console
    EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
    
    # maxmind db required
    # follow https://docs.djangoproject.com/en/3.1/ref/contrib/gis/geoip2/
    GEOIP_PATH = os.path.join(BASE_DIR, 'path/to/maxmind/db')
    
    # Twilio required sms validation
    # get keys from https://www.twilio.com/
    TWILIO_API_KEY = ""
    TWILIO_AUTH_TOKEN = ""
    TWILIO_PHONE_NUMBER = ""
    
  2. Run python manage.py migrate to create the accounts models.

  3. Start the development server and visit http://127.0.0.1:8000/accounts/login/

About

Full featured user app with built-in verification and activity stream

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published