Skip to content

Foxfix/api_for_User

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

api_for_User

git clone https://github.com/Foxfix/api_for_User_AbstractUser.git
cd api_for_User_AbstractUser/
pip install -r requirements.txt
python manage.py runserver
python manage.py migrate
python manage.py createsuperuser

http://127.0.0.1:8000/api/register/    регистрация клиента
http://127.0.0.1:8000/api/login/       вход 
http://127.0.0.1:8000/api/id/          личные данные клиента по id (доступны только владельцу
http://127.0.0.1:8000/api/             список клиентов. Доступен только админу.           

Поля first_name,last_name, email, passport_number обязательны при регистрации. Когда пользователь создает учетную запись, он или она должны подтвердить личность. Я использовала JWT token Токен генерится для каждого раза при входе. Без него доступ к информации закрыт.

Администраторов можно создавать из админ панели, назначив им определенные права. Доступ к superuser простым админам закрыт. Также у них нет возможности назначать права is_staff и is_superuser. Разрешено только активирование зарегистрированных клиентов.

Тестим помощью cURL.

curl -X GET http://127.0.0.1:8000/api/  
{"detail":"Authentication credentials were not provided."}

Cписок клиентов доступен только админу

Логинимся http://127.0.0.1:8000/api/login/  под админом, получаем токен

api

Проверяем в терминале

curl -H "Authorization: JWT <token>" http://127.0.0.1:8000/api/

Получаем весь список клиентов. При этом, если запросим детали клиента по id

curl -H "Authorization: JWT <token>" http://127.0.0.1:8000/api/1/ 
{"detail":"You do not have permission to perform this action."}

получим ограничение. К личной информации по api доступ есть только у владельца.
Админы могут просматривать личную информацию профиля клиента в админ панели.
Логинимся под клиетом (владельцем профиля) http://127.0.0.1:8000/api/login/
Получаем токен.

curl -H "Authorization: JWT <token>" http://127.0.0.1:8000/api/id_клиента/
Получаем личную информацию по профилю клиента.
{"first_name":"Norma","last_name":"Backer","email":"[email protected]","balance":"0.0000","username":"norma","passport_number":"CK123478","accaunt":true}

При этом запрос curl -H "Authorization: JWT <token>" http://127.0.0.1:8000/api/id_иного_клиента/
Выдаст {"detail":"You do not have permission to perform this action."}
т.к. доступ к личной информации других клиентов ограничен.

Сразу при регистрации пользователь создается не активным и ожидает одобрения админа. В админ панели добавлены настройки для ограничения доступа к superuser и отдельным полям, опция для подтверждения профиля.

api

Пользователь может изменять свои данные. Аккаунт по умолчанию стоит в положении Open, пользователь может изменить на Close, тем самым закрыв аккаунт и поставив администратора в известность о возможности удаления профиля.

api api

Доп проверки для себя:
http://127.0.0.1:8000/login/
http://127.0.0.1:8000/logout/
http://127.0.0.1:8000/register/

В этом приложении дополнительные поля для user были добавлены иным способом, с использованием связи один-к-одному с пользовательской моделью.

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published