%global _empty_manifest_terminate_build 0 Name: python-pyramid-jwt Version: 1.6.1 Release: 1 Summary: JWT authentication policy for Pyramid License: BSD URL: https://github.com/wichert/pyramid_jwt Source0: https://mirrors.nju.edu.cn/pypi/web/packages/44/25/ed2fea7add4aa146ffbe45f485c22c5f581c823518d25c78a17e578574e8/pyramid_jwt-1.6.1.tar.gz BuildArch: noarch Requires: python3-pyramid Requires: python3-PyJWT Requires: python3-WebTest Requires: python3-pytest Requires: python3-pytest-freezegun %description This package implements an authentication policy for Pyramid that using `JSON Web Tokens `_. This standard (`RFC 7519 `_) is often used to secure backend APIs. The excellent `PyJWT `_ library is used for the JWT encoding / decoding logic. Enabling JWT support in a Pyramid application is very simple: from pyramid.config import Configurator from pyramid.authorization import ACLAuthorizationPolicy def main(): config = Configurator() # Pyramid requires an authorization policy to be active. config.set_authorization_policy(ACLAuthorizationPolicy()) # Enable JWT authentication. config.include('pyramid_jwt') config.set_jwt_authentication_policy('secret') This will set a JWT authentication policy using the `Authorization` HTTP header with a `JWT` scheme to retrieve tokens. Using another HTTP header is trivial: config.set_jwt_authentication_policy('secret', http_header='X-My-Header') If your application needs to decode tokens which contain an `Audience `_ claim you can extend this with: config.set_jwt_authentication_policy('secret', auth_type='Bearer', callback=add_role_principals, audience="example.org") To make creating valid tokens easier a new ``create_jwt_token`` method is added to the request. You can use this in your view to create tokens. A simple authentication view for a REST backend could look something like this: @view_config('login', request_method='POST', renderer='json') def login(request): login = request.POST['login'] password = request.POST['password'] user_id = authenticate(login, password) # You will need to implement this. if user_id: return { 'result': 'ok', 'token': request.create_jwt_token(user_id) } else: return { 'result': 'error' } Unless you are using JWT cookies within cookies (see the next section), the standard ``remember()`` and ``forget()`` functions from Pyramid are not useful. Trying to use them while regular (header-based) JWT authentication is enabled will result in a warning. %package -n python3-pyramid-jwt Summary: JWT authentication policy for Pyramid Provides: python-pyramid-jwt BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-pyramid-jwt This package implements an authentication policy for Pyramid that using `JSON Web Tokens `_. This standard (`RFC 7519 `_) is often used to secure backend APIs. The excellent `PyJWT `_ library is used for the JWT encoding / decoding logic. Enabling JWT support in a Pyramid application is very simple: from pyramid.config import Configurator from pyramid.authorization import ACLAuthorizationPolicy def main(): config = Configurator() # Pyramid requires an authorization policy to be active. config.set_authorization_policy(ACLAuthorizationPolicy()) # Enable JWT authentication. config.include('pyramid_jwt') config.set_jwt_authentication_policy('secret') This will set a JWT authentication policy using the `Authorization` HTTP header with a `JWT` scheme to retrieve tokens. Using another HTTP header is trivial: config.set_jwt_authentication_policy('secret', http_header='X-My-Header') If your application needs to decode tokens which contain an `Audience `_ claim you can extend this with: config.set_jwt_authentication_policy('secret', auth_type='Bearer', callback=add_role_principals, audience="example.org") To make creating valid tokens easier a new ``create_jwt_token`` method is added to the request. You can use this in your view to create tokens. A simple authentication view for a REST backend could look something like this: @view_config('login', request_method='POST', renderer='json') def login(request): login = request.POST['login'] password = request.POST['password'] user_id = authenticate(login, password) # You will need to implement this. if user_id: return { 'result': 'ok', 'token': request.create_jwt_token(user_id) } else: return { 'result': 'error' } Unless you are using JWT cookies within cookies (see the next section), the standard ``remember()`` and ``forget()`` functions from Pyramid are not useful. Trying to use them while regular (header-based) JWT authentication is enabled will result in a warning. %package help Summary: Development documents and examples for pyramid-jwt Provides: python3-pyramid-jwt-doc %description help This package implements an authentication policy for Pyramid that using `JSON Web Tokens `_. This standard (`RFC 7519 `_) is often used to secure backend APIs. The excellent `PyJWT `_ library is used for the JWT encoding / decoding logic. Enabling JWT support in a Pyramid application is very simple: from pyramid.config import Configurator from pyramid.authorization import ACLAuthorizationPolicy def main(): config = Configurator() # Pyramid requires an authorization policy to be active. config.set_authorization_policy(ACLAuthorizationPolicy()) # Enable JWT authentication. config.include('pyramid_jwt') config.set_jwt_authentication_policy('secret') This will set a JWT authentication policy using the `Authorization` HTTP header with a `JWT` scheme to retrieve tokens. Using another HTTP header is trivial: config.set_jwt_authentication_policy('secret', http_header='X-My-Header') If your application needs to decode tokens which contain an `Audience `_ claim you can extend this with: config.set_jwt_authentication_policy('secret', auth_type='Bearer', callback=add_role_principals, audience="example.org") To make creating valid tokens easier a new ``create_jwt_token`` method is added to the request. You can use this in your view to create tokens. A simple authentication view for a REST backend could look something like this: @view_config('login', request_method='POST', renderer='json') def login(request): login = request.POST['login'] password = request.POST['password'] user_id = authenticate(login, password) # You will need to implement this. if user_id: return { 'result': 'ok', 'token': request.create_jwt_token(user_id) } else: return { 'result': 'error' } Unless you are using JWT cookies within cookies (see the next section), the standard ``remember()`` and ``forget()`` functions from Pyramid are not useful. Trying to use them while regular (header-based) JWT authentication is enabled will result in a warning. %prep %autosetup -n pyramid-jwt-1.6.1 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-pyramid-jwt -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Apr 11 2023 Python_Bot - 1.6.1-1 - Package Spec generated