더북(TheBook)

10.7.3 기본 계정 생성

데이터베이스를 초기화할 때 관리자 계정은 기본으로 생성되게 한다. app/controllers/gorm.go 파일의 migrate() 함수에서 다음과 같이 관리자 계정을 생성하는 코드를 작성해 보자.

▼ app/controllers/gorm.go

const (
    DefaultName,
    DefaultRole,
    DefaultUsername,
    DefaultPassword = "Admin", "admin", "admin", "admin"
)
 
func migrate() {
    db.AutoMigrate(&models.Post{}, &models.Comment{}, &models.User{})
    bcryptPassword, _ := bcrypt.GenerateFromPassword([]byte(DefaultPassword), bcrypt. DefaultCost)
    db.Where(models.User{Name: DefaultName, Role: DefaultRole, Username: DefaultUsername}).
        Attrs(models.User{Password: string(bcryptPassword)}).
        FirstOrCreate(&models.User{})
}

운영 환경에 배포하고 나면 관리자 계정의 패스워드는 바로 변경해야 한다. 패스워드 변경 기능 구현은 소개하지 않는다. 스스로 구현해 보자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.