Skip to content

spkcspider/spkcspider-domainauth

Repository files navigation

Helper for db based domain auth

Installation

pip install spkcspider-domainauth

settings:

...
INSTALLED_APPS = [
...
    spider_domainauth
...
]

DOMAINAUTH_URL = 'spider_domainauth:domainauth-db'

Usage:

url based:

from django.conf import settings
from django.shortcuts import resolve_url

response = requests.post(
  resolve_url(settings.DOMAINAUTH_URL),
  {
    "urls": "http://foo/component/list/"
  }
)
token = response.json["tokens"]["foo"]

Module based:

from spider_domainauth.models import ReverseToken
from django.shortcuts import resolve_url

# overloaded create method
rtoken = ReverseToken.objects.create()
"http://foo/token/list/?intent=domain&referrer={referrer}&payload={token}".format(
  referrer=resolve_url(settings.DOMAINAUTH_URL),
  token=rtoken.token
)
e.refresh_from_db()
# note: it is not token but secret, reason: token is reused and prefixed with id (for uniqueness)
e.secret

Settings:

  • DOMAINAUTH_RATELIMIT_FUNC: ratelimit access tries, can be also used to limit number of tokens
  • DOMAINAUTH_LIFETIME: token lifetime (default 1 hour) (Note: if "url based"-method is used, the token is automatically deleted afterwards)
  • DOMAINAUTH_URL: url to domain auth view (required for external users)

TODO:

  • overload other manager methods
  • better examples

About

library for db based domain authentication

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages