ark - 基于NestJS,TypeORM,NEXT.js(v9.3)和Material UI(v4)的最简单的身份验证系统。

Created at: 2018-12-13 16:08:54
Language: TypeScript
License: MIT

基于NestJSTypeORMNEXT.js(v9)Material UI(v4)的最简单的身份验证系统。

打包许可证(MIT)

特征

技术领域

  • 热重装以获得开发人员的经验:)
    • ts-node- dev-编译您的TS应用程序,并在修改文件后重新启动
    • NEXT.js -React框架
  • 郎郎
  • 数据库
    • PostgreSQL-世界上最先进的开源关系数据库
  • ORM(对象关系映射)
    • TypeORM-用于TypeScript和JavaScript的ORM(ES7,ES6,ES5)
  • 服务器
    • NestJS-一个渐进式的Node.js框架,用于构建高效,可靠和可扩展的服务器端应用程序
      • 在内部使用Express -Node.js的快速,简单,极简的Web框架
    • NEXT.js -React框架
  • 环境变量
    • dotenv-从.env加载用于nodejs项目的环境变量
    • dotenv-webpack-一个安全的webpack插件,支持dotenv和其他环境变量,并且仅公开您选择和使用的内容。
  • 用户认证
    • Passport-对Node.js的简单,轻松的身份验证
  • UI框架

设定

数据库设置

方舟使用PostgreSQL v11

对于Mac用户

# install postgresql@11
$ brew install postgresql@11

# if you want to start postgresql@11 in startup, try do this
$ brew services start postgresql@11

# [MUST] create user "arkuser" with password "arkpass"
$ createuser -P arkuser

# [MUST] create database "arkdb" owened by "arkuser"
$ createdb arkdb -O arkuser

对于Windows用户

蟒蛇

由于Ark使用node.bcrypt.js,因此我们需要一个Python:

Windows构建工具
  • 以管理员身份
    npm install --global --production windows-build-tools
    从提升的PowerShell或CMD.exe运行
PostgreSQL的
> postgresql-11.6-3-windows-x64.exe --install_runtimes 0
pgAdmin
  • https://www.pgadmin.org/download下载最新的安装程序
  • 运行pgAdmin并以root用户登录
  • 右键单击
    Login/Group Roles
    Create > Login/Group Role
    • General
      面板:
      • Name
        arkuser
    • Definition
      面板:
      • Password
        arkpass
    • Priviledges
      面板:
      • 选择所有
        Yes
  • 右键单击
    Databases
    Create > Database
    • General
      标签:
      • Database
        arkdb
      • Owner
        arkuser

应用程式设定

# prepare `.env` and edit it for your own environments
$ cp .env.example .env

# install dependencies
$ yarn

# development mode
$ yarn dev

# production mode
$ yarn build
$ yarn start

.env
文件是这样的:

DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=arkuser
DB_PASSWORD=arkpass
DB_DATABASE=arkdb
DB_SYNCHRONIZE=true

APP_PROTOCOL=http
APP_HOST=localhost
APP_PORT=4000
APP_SESSION_SECRET=ark

生产部署

对于生产用途,请使用pm2进行Node.js流程管理。

# install pm2
$ npm install --global pm2

# run the app "ARK" with the config `ecosystem.config.js`
$ cd ark
$ pm2 start

例子

ecosystem.config.js

module.exports = {
  apps : [{
    name: 'ARK',
    script: '.next/production-server/main.js',
    instances: 1,
    autorestart: true,
    watch: false,
    max_memory_restart: '1G',
    env: {
      NODE_ENV: 'production'
    }
  }]
};

屏幕截图

注册页面

登录页面

首页(Auth Guard)

文章

有关

  • YARK-另一个基于NestJS,TypeORM,react-ssr和Material UI(v4)的最简单的身份验证系统