구인 공고 웹 사이트: 수퍼유저 만들기
8520 단어 opinejavascriptreactwebdev
목차
Sokhavuth TIN ・ 8월 11일 ・ 2분 읽기
GitHub: https://github.com/Sokhavuth/opine-job
데노 배치: https://khmerweb-job.deno.dev/users
로그인은 일부 금지된 페이지에 들어가기 위해 특정 등록 사용자를 확인하거나 인증하는 프로세스입니다. 결과적으로, 우리는 먼저 이러한 특수 사용자를 데이터베이스에 등록해야 대시보드 또는 기타 금지된 페이지에 로그인하려고 할 때 등록 여부를 데이터베이스에서 확인할 수 있습니다. 그들이 등록되어 있으면 금지 구역에 들어갈 수 있도록 코드를 작성할 수 있습니다. 그렇지 않으면 들어가지 않을 것입니다.
이 목표를 달성하기 전에 MongoDB 데이터베이스에 사용자 컬렉션을 생성하여 수퍼유저 또는 관리자를 등록하여 다른 특수 사용자를 등록하고 대시보드를 제어해야 합니다.
반면에 사용자 암호의 보안을 위해 bcrypt 패키지를 사용하여 사용자 암호를 해시하여 웹 사이트 관리자를 포함하여 아무도 해당 암호를 읽고 이해할 수 없도록 할 수 있습니다. 다음은 해시된 암호의 예입니다. $2a$08$zuHtXr2ITSIHYfLL/kaj9uo7XTZiL/rNJV0jdJB/7HIHFmuSGWb7C.
// controllers/users/login.js
import login from "../../views/users/login.jsx";
import userdb from "../../models/user.ts";
class Login{
async getForm(req){
const config = req.mysetting();
config.page_title = "Login Page";
config.route = '/users/login';
userdb.createRootUser(req);
return await login(config);
}
}
export default new Login();
// models/users.ts
import { bcrypt } from '../deps.ts';
interface UserSchema {
_id: ObjectId;
id: string;
title: string;
content: string;
thumb: string;
date: string;
role: string;
email: string;
password: string;
}
class User{
async createRootUser(req){
const id = Date.now() + Math.round(Math.random() * 1E9).toString();
const salt = await bcrypt.genSalt(8);
const hashPassword = bcrypt.hashSync('xxxxxxxxx', salt);
let newUser = {
id: id,
title: 'Sokhavuth',
content: '',
thumb: '',
date: '',
role: 'Admin',
email: '[email protected]',
password: hashPassword,
}
const users = req.mydb.collection<UserSchema>("users");
await users.insertOne(newUser);
}
}
export default new User();
Reference
이 문제에 관하여(구인 공고 웹 사이트: 수퍼유저 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sokhavuth/job-announcement-website-creating-superuser-4fj8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)