# -*- 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()), ]