1
0
Fork 0
bthlabs-jsonrpc/packages/bthlabs-jsonrpc-django/example/bthlabs_jsonrpc_django_example/urls.py

46 lines
1.2 KiB
Python

# -*- coding: utf-8 -*-
# bthlabs-jsonrpc-django | (c) 2022-present Tomek Wójcik | MIT License
from __future__ import annotations
import datetime
from django.contrib import admin
from django.urls import path
from bthlabs_jsonrpc_django import JSONRPCView, is_authenticated, is_staff
from bthlabs_jsonrpc_core.ext.jwt import ALGORITHMS, HMACKey, JWTCodec, KeyPair
class JWTRPCView(JSONRPCView):
codec = JWTCodec
def get_codec(self, request):
return JWTCodec(
KeyPair(
decode_key=HMACKey('thisisntasecrurekeydontuseitpls=', ALGORITHMS.HS256),
encode_key=HMACKey('thisisntasecrurekeydontuseitpls=', ALGORITHMS.HS256),
),
issuer='bthlabs_jsonrpc_django_example',
ttl=datetime.timedelta(seconds=3600),
)
urlpatterns = [
path('admin/', admin.site.urls),
path(
'rpc/admin',
JWTRPCView.as_view(
auth_checks=[is_authenticated, is_staff],
namespace='admin',
),
),
path(
'rpc/private',
JSONRPCView.as_view(
auth_checks=[is_authenticated],
namespace='private',
),
),
path('rpc', JSONRPCView.as_view()),
]