TV 채널 웹사이트: 루트 사용자 생성

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

대시보드를 구축하기 전에 대시보드를 감독할 루트 사용자 또는 관리자(admin)를 생성해야 합니다. 나중에 사용할 수 있도록 MongoDB Atlas의 "users"컬렉션에 rootuser를 등록합니다.

이 목표를 달성하기 위해 모델 폴더 내의 user.py 파일에 "User"클래스를 만들 것입니다. 이 클래스는 컨트롤러 폴더 안에 있는 login.py 파일의 "Login"클래스로 가져옵니다. 이렇게 하면 User 클래스를 인스턴스화하고 해당 클래스에서 createRootUser() 메서드를 호출하여 관리자 또는 루트 사용자를 만들 수 있습니다.

사용자의 암호를 기밀로 만들기 위해 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": '[email protected]',
            "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)


좋은 웹페이지 즐겨찾기