Mam zestaw ról użytkownika określonymi i chronionych na stronie internetowej za pomocą Flask-User. Teraz chcę umożliwić im wykonywanie wywołań REST do mojego interfejsu API, które zostaną podzielone przy użyciu @roles_required
w celu filtrowania żądań. Jak wykonać logowanie REST i przekazać token \ referencje do Flask-USER dla @roles_required
do pracy?Jak chronić Flask-RESTful za pomocą zarządzania Flask-USER?
6
A
Odpowiedz
3
Musisz sprawdzić w repozytorium Dillon Dixan, gdzie zaproponował bardzo piękny przykład, który może pomóc w uzyskaniu zapytania. Oto przykładowy kod:
from flask import Flask
from flask_basic_roles import BasicRoleAuth
app = Flask(__name__)
auth = BasicRoleAuth()
# Let's add some users.
auth.add_user(user='bob', password='secret123', roles='producer')
auth.add_user(user='alice', password='drowssap', roles=('producer','consumer'))
auth.add_user(user='bill', password='54321')
auth.add_user(user='steve', password='12345', roles='admin')
# Only producers and admins can post, while consumers can only get.
# Admins can also perform all other verbs.
@app.route("/task")
@auth.require(roles={
'POST': 'producer',
'GET': 'consumer',
'DELETE,POST,PATCH,PUT,GET': 'admin'
})
def tasks_endpoint(methods=(...)):
return "Here tasks get produced and consumed!"
# We can secure by user too. Steve can use any verb on this
# endpoint and everyone else is denied access.
@app.route("/task_status")
@auth.require(users='steve')
def task_status_endpoint(methods=(...)):
return "Here are the task statuses!"
# Alice, Bill and users with an 'admin' role can access this, while everyone
# else is denied on all verbs.
@app.route("/task_failures")
@auth.require(users=('alice', 'bill'), roles='admin')
def task_failures(methods=(...)):
return "Here are the task failures!"
# Everyone including unauthenticated users can view task results.
@app.route("/task_results")
def task_results(methods=(...)):
return "Here are the task results!"
if __name__ == "__main__":
app.run()
Wszystko, co musisz zrobić, to zainstalować bibliotekę flask_basic_roles
korzystając pip
. Reszta można sprawdzić w przykładzie i na pewno ci pomoże.
Ponadto, można również odwiedzić i zobaczyć: https://github.com/raddevon/flask-permissions
zapoznanie pozwolenie kolby stąd: https://pythonhosted.org/Flask-Security/.
Powiązane problemy
- 1. Jak chronić przycisk jquery za pomocą Invisible reCaptcha?
- 2. Jak chronić WebFonts
- 3. spray ochrona: jak chronić trasy?
- 4. Najlepszy sposób zarządzania uprawnieniami użytkownika/obiektu grupowego za pomocą Symfony2
- 5. Jak chronić prywatne REST API
- 6. Jak chronić witrynę admin django?
- 7. Jak chronić hasło w python?
- 8. Org-mode: chronić nacisk
- 9. Jak chronić gałąź GIT (jak master)
- 10. Jak wstawić obiekt typu blob do bazy danych za pomocą serwera zarządzania serwerem sql
- 11. Jak zresetować użytkownika do zarządzania rabbitmq
- 12. Jak chronić aplikację przed duplikacją maszyny wirtualnej?
- 13. Jak chronić internetowego sędziego przed złośliwym kodem?
- 14. Jak chronić plik Jar przed dekompilacją?
- 15. Jak chronić się przed naruszeniem ciągu zapytania?
- 16. Jak chronić zasób kreślarski w aplikacji Android
- 17. C++ Jak chronić się przed stdio.h makr
- 18. Jak chronić mój kod źródłowy po wdrożeniu?
- 19. Jak chronić ciąg połączenia aplikacji Yii?
- 20. Lucky patcher, jak mogę go chronić?
- 21. sails.js + passport.js: sesje zarządzania
- 22. Jaki jest właściwy sposób zarządzania wieloma pokojami rozmów za pomocą socket.io?
- 23. Jak chronić "publiczną" część usługi REST przed spamem?
- 24. Biblioteka zarządzania licencjami
- 25. Zapisywanie plików za pomocą spinacza za pomocą interfejsu API
- 26. Biblioteka zarządzania danymi IPTC
- 27. Chronione hasłem pliki PPT za pomocą Perl
- 28. COMException podczas uwierzytelniania podczas zarządzania usługami IIS zdalnie za pomocą Microsoft.Web.Administration
- 29. Nie można uaktualnić wdrożenia platformy Azure za pomocą interfejsu REST API zarządzania (problem z certyfikatem SSL)
- 30. Dodanie nowego testu za pomocą SenTestCase (nowy test nie pojawia się w schemacie zarządzania)