Сайт телевизионного канала: Создание корневого пользователя

GitHub: https://github.com/Sokhavuth/TV-Channel
Vercel: https://khmerweb-tv-channel.vercel.app/login

Перед созданием приборной панели нам необходимо создать root-пользователя или администратора (admin), чтобы он мог контролировать приборную панель. Мы зарегистрируем rootuser в коллекции «users» в MongoDB Atlas для последующего использования.

Для достижения этой цели мы создадим класс «User» в файле user.py в папке models. Этот класс будет импортирован в класс «Login» в файле login.py в папке controllers. Таким образом, мы сможем инстанцировать класс User и вызвать метод createRootUser() в этом классе для создания администратора или root-пользователя.

Чтобы сделать пароль пользователя конфиденциальным, мы можем использовать стандартную библиотеку Python «hashlib» для хэширования пароля.

# models/user.py

import config, hashlib, uuid


class User:
    def __init__(self):
        self.db = config.db
        self.setup = config.settings()


    def createRootUser(self):
        raw_salt = uuid.uuid4().hex
        password = "xxxxxxxxxxxxxxxxxxx".encode('utf-8')
        salt = raw_salt.encode('utf-8')
        hashed_password = hashlib.sha512(password + salt).hexdigest()

        user = { 
            "id": uuid.uuid4().hex, 
            "title": 'Sokhavuth',
            "content": '',
            "thumb": '',
            "date": '',
            "role": 'Admin',
            "email": 'vuthdevelop@gmail.com',
            "salt": raw_salt,
            "password": hashed_password,
        }

        usercol = self.db["users"]
        usercol.insert_one(user)


Вход в полноэкранный режим Выход из полноэкранного режима
# controllers/frontend/login.py

import config, copy
from bottle import template
from models.user import User


class Login:
    def __init__(self):
        settings = copy.deepcopy(config.settings)
        self.setup = settings()


    def getPage(self):
        user = User()
        user.createRootUser()

        self.setup["pageTitle"] = "Log into Admin Page"
        self.setup["route"] = "/login"

        return template("base", data=self.setup)


Вход в полноэкранный режим Выход из полноэкранного режима

Оцените статью
devanswers.ru
Добавить комментарий