Xác thực nodejs jwt mongodb github

Cam kết này không thuộc về bất kỳ nhánh nào trên kho lưu trữ này và có thể thuộc về một nhánh bên ngoài kho lưu trữ

Bạn không thể thực hiện hành động đó vào lúc này

Bạn đã đăng nhập bằng tab hoặc cửa sổ khác. Tải lại để làm mới phiên của bạn. Bạn đã đăng xuất trong một tab hoặc cửa sổ khác. Tải lại để làm mới phiên của bạn

Đây là bộ xương API REST cơ bản được viết trên JavaScript bằng cách sử dụng async/await. Tuyệt vời để xây dựng API web khởi động cho giao diện người dùng của bạn (Android, iOS, Vue, phản ứng, góc cạnh hoặc bất kỳ thứ gì có thể sử dụng API)

Dự án này được tạo để giúp các nhà phát triển khác tạo API REST cơ bản một cách dễ dàng với Node. js. Ví dụ cơ bản này cho thấy JavaScript có thể đơn giản và mạnh mẽ như thế nào. Bạn có muốn đóng góp không?

Mua cho tôi một ly cà phê

Xin chào. Tôi là Daniel Avellaneda, tôi là một người đam mê mã nguồn mở và dành thời gian rảnh của mình để xây dựng các dự án trong lĩnh vực này

Tôi là người tạo và duy trì nút-express-mongodb-jwt-rest-api-skeleton và vue-skeleton-mvp

Các dự án này là "bộ ứng dụng web dành cho người mới bắt đầu" dành cho bất kỳ nhà phát triển nào muốn xây dựng ứng dụng của riêng họ mà không phải bắt đầu lại từ đầu. API + Giao diện người dùng

Cả hai dự án đã được tải xuống hàng nghìn lần bởi các nhà phát triển web trên khắp thế giới

Tôi đang cố gắng hết sức để cung cấp cho bạn trải nghiệm tốt khi sử dụng các ứng dụng của tôi, vì vậy nếu bạn thích những gì tôi đang làm và muốn nói "cảm ơn. ", hãy mua cho tôi một ly cà phê☕

Xác thực nodejs jwt mongodb github

Vui lòng gửi cho tôi một tweet https. //twitter. com/davellanedam, chia sẻ nội dung này với người khác hoặc thực hiện yêu cầu kéo

Đặc trưng

  • Sẵn sàng cho nhiều môi trường (phát triển, sản xuất)
  • Hệ thống người dùng email/mật khẩu tùy chỉnh với tính năng chặn và bảo mật cơ bản để ngăn chặn các cuộc tấn công vũ phu
  • phản ứng nén
  • Tiêu đề HTTP được bảo mật
  • CORS đã sẵn sàng
  • Bộ nhớ cache đã sẵn sàng (Redis)
  • Trình ghi yêu cầu HTTP ở chế độ phát triển
  • i18n đã sẵn sàng (để gửi email bằng nhiều ngôn ngữ)
  • Vai trò người dùng
  • phân trang đã sẵn sàng
  • Thông tin người dùng
  • Danh sách người dùng cho khu vực quản trị
  • Mô hình thành phố và ví dụ về bộ điều khiển
  • Nhật ký truy cập đăng nhập bằng IP, trình duyệt và vị trí quốc gia (đối với quốc gia, tìm tiêu đề
    cd myproject
    npm install
    npm update
    7 mà CloudFlare tạo khi bảo vệ trang web của bạn)
  • Tài liệu được tạo tự động API bởi Postman
  • Ví dụ về bộ sưu tập API cho Postman
  • Thử nghiệm với mocha/chai cho các điểm cuối API
  • Tập lệnh NPM để dọn dẹp và tạo cơ sở dữ liệu MongoDB
  • Tập lệnh NPM để giữ định dạng mã nguồn tốt bằng cách sử dụng đẹp hơn và ESLint
  • Sử dụng ESLint để thực hành mã hóa tốt
  • Ví dụ về người gửi thư với Nodemailer và Mailgun
  • Khả năng làm mới mã thông báo
  • Mã thông báo JWT, thực hiện các yêu cầu bằng mã thông báo sau khi đăng nhập với tiêu đề
    cd myproject
    npm install
    npm update
    0 có giá trị
    cd myproject
    npm install
    npm update
    1 trong đó
    cd myproject
    npm install
    npm update
    2 là mã thông báo đã ký và mã hóa được đưa ra trong phản hồi từ quá trình đăng nhập

Yêu cầu

  • Nút. 10+
  • MongoDB 3. 6+
  • làm lại 5. 0+

Thử nghiệm

Bản demo của API này được đặt tại. https. //api-demo. daniel-avellaneda. com

Thông tin đăng nhập

email.

cd myproject
npm install
npm update
3
mật khẩu.
cd myproject
npm install
npm update
4

QUAN TRỌNG. Cơ sở dữ liệu đặt lại cứ sau 30 phút như "12. 00am, 12. 30 giờ sáng, 1. 00 giờ sáng", v.v. Vì vậy, mọi thứ bạn làm với API sẽ bị mất sau một thời gian ngắn

Tài liệu về API
Bộ sưu tập ví dụ về API Postman
Nếu bạn muốn thử nghiệm, đừng quên thay đổi biến máy chủ thành.
______05

Bản trình diễn cũng được liên kết với một dự án VueJS cho thấy cách API này có thể được tích hợp với giao diện người dùng có thể sử dụng API.
Repo ở đây. https. //github. com/davellanedam/vue-skeleton-mvp
Bản demo đang chạy ở đây. https. //vue-demo. daniel-avellaneda. com

Cài đặt thế nào

Sử dụng Git (được khuyến nghị)

  1. Sao chép dự án từ github. Thay đổi "myproject" thành tên dự án của bạn

git clone https://github.com/davellanedam/node-express-mongodb-jwt-rest-api-skeleton.git ./myproject

Sử dụng ZIP tải xuống thủ công

  1. Tải xuống kho lưu trữ
  2. Giải nén vào thư mục mong muốn của bạn

Cài đặt phụ thuộc npm sau khi cài đặt (Git hoặc tải xuống thủ công)

cd myproject
npm install
npm update

Thiết lập môi trường (phát triển hoặc sản xuất)

  1. Trong thư mục gốc của kho lưu trữ này, bạn sẽ tìm thấy một tệp có tên
    cd myproject
    npm install
    npm update
    6
  2. Tạo một tệp mới bằng cách sao chép và dán tệp rồi đổi tên thành chỉ
    cd myproject
    npm install
    npm update
    7
  3. Tệp
    cd myproject
    npm install
    npm update
    7 đã bị bỏ qua, vì vậy bạn không bao giờ cam kết thông tin xác thực của mình
  4. Thay đổi giá trị của tệp thành môi trường của bạn (phát triển hoặc sản xuất)
  5. Tải
    cd myproject
    npm install
    npm update
    7 lên máy chủ môi trường của bạn (phát triển hoặc sản xuất)
  6. Nếu bạn sử dụng bộ sưu tập người đưa thư để thử các điểm cuối, hãy thay đổi giá trị của biến
    cd myproject
    npm install
    npm update
    20 trên môi trường của bạn thành url của máy chủ, đối với chế độ phát triển, hãy sử dụng http. //máy chủ cục bộ. 3000

QUAN TRỌNG. Theo mặc định, mã thông báo sẽ hết hạn sau 3 ngày (4320 phút được đặt trong. env. ví dụ). Bạn có thể làm mới mã thông báo tại điểm cuối GET /token. Nếu mọi thứ đều ổn, bạn sẽ nhận được mã thông báo mới

người đưa thư

Để đảm bảo khả năng gửi email được gửi bởi API này,

cd myproject
npm install
npm update
21 được sử dụng để gửi thư cho người dùng khi họ đăng ký, vì vậy nếu bạn muốn sử dụng tính năng đó, hãy đăng ký tại trang web của họ https. //www. súng thư. com

Nếu bạn muốn thử một phương pháp khác thì không sao, tôi đã sử dụng https. // gật đầu. com cho API này và chúng có các phương thức vận chuyển khác nhau như. smtp

i18n

Ngôn ngữ được tự động phát hiện từ tiêu đề

cd myproject
npm install
npm update
22 theo yêu cầu. Vì vậy, bạn có thể gửi ngôn ngữ theo cách thủ công theo yêu cầu hoặc trình duyệt của bạn sẽ gửi ngôn ngữ mặc định, nếu tiêu đề
cd myproject
npm install
npm update
22 không được gửi thì nó sẽ sử dụng ngôn ngữ
cd myproject
npm install
npm update
24 làm mặc định

Làm thế nào để chạy

Làm sạch cơ sở dữ liệu và tạo mẫu

Có 3 lệnh có sẵn cho việc này.

cd myproject
npm install
npm update
25,
cd myproject
npm install
npm update
26 và
cd myproject
npm install
npm update
27

cd myproject
npm install
npm update
2

  • cd myproject
    npm install
    npm update
    25 làm sạch và sau đó thêm dữ liệu động vào cơ sở dữ liệu
  • cd myproject
    npm install
    npm update
    26 dọn dẹp cơ sở dữ liệu
  • cd myproject
    npm install
    npm update
    27 tạo cơ sở dữ liệu với dữ liệu động

Chạy ở chế độ phát triển (nâng máy chủ API)

cd myproject
npm install
npm update
4

Bạn sẽ biết máy chủ đang chạy bằng cách kiểm tra đầu ra của lệnh

cd myproject
npm install
npm update
41

cd myproject
npm install
npm update
6

chạy thử nghiệm

Thực hành tốt là thực hiện kiểm tra mã của bạn, vì vậy mẫu về cách thực hiện điều đó trong

cd myproject
npm install
npm update
42 cũng được bao gồm trong thư mục
cd myproject
npm install
npm update
43

cd myproject
npm install
npm update
9

mã định dạng

Định dạng mã của bạn đẹp hơn bằng cách nhập

cd myproject
npm install
npm update
0

Định dạng tệp đánh dấu

Định dạng tất cả các tệp đánh dấu của bạn bằng nhận xét bằng cách nhập

cd myproject
npm install
npm update
1

mã lót

lint mã của bạn với ESLint bằng cách gõ

cd myproject
npm install
npm update
2

Cách sử dụng

Khi mọi thứ được thiết lập để kiểm tra các tuyến API, hãy sử dụng Postman hoặc bất kỳ ứng dụng kiểm tra api nào khác. Tổ hợp tên người dùng/mật khẩu mặc định để đăng nhập là

cd myproject
npm install
npm update
44

tài liệu API

https. // tài liệu. người phát thơ. com/view/487539/RWaHwoLV

Bộ sưu tập ví dụ API Postman

Bạn có thể nhập bộ sưu tập ví dụ vào Postman. Để nhập, nhấp vào nút nhập và chọn

cd myproject
npm install
npm update
45 nằm trong thư mục gốc

Truy cập

cd myproject
npm install
npm update
46 để tạo môi trường phát triển, sản xuất, v.v. Trên mỗi môi trường bạn tạo, bạn sẽ cần phải

  1. Tạo khóa mới

    cd myproject
    npm install
    npm update
    47 và trong yêu cầu
    cd myproject
    npm install
    npm update
    48, giá trị này được cập nhật tự động sau khi đăng nhập thành công thông qua tập lệnh nằm trong tab
    cd myproject
    npm install
    npm update
    49. Mỗi khi bạn yêu cầu API, nó sẽ gửi tiêu đề
    cd myproject
    npm install
    npm update
    0 với giá trị
    cd myproject
    npm install
    npm update
    61 trong yêu cầu, bạn có thể kiểm tra điều này trên tiêu đề của người dùng hoặc điểm cuối thành phố trong ví dụ về Postman

  2. Tạo khóa thứ hai

    cd myproject
    npm install
    npm update
    20 bằng url của máy chủ của bạn, để sử dụng chế độ phát triển, hãy sử dụng http. //máy chủ cục bộ. 3000

Đây là API REST, vì vậy nó hoạt động bằng các phương thức HTTP sau

  • NHẬN (Đọc). Nhận một danh sách các mục hoặc một mục duy nhất
  • ĐĂNG (Tạo). Tạo một mục
  • PATCH (Cập nhật). Cập nhật một mục
  • XÓA BỎ. Xóa một mục

Tạo mô hình mới

Nếu bạn cần thêm nhiều mô hình hơn vào dự án, chỉ cần tạo một tệp mới trong

cd myproject
npm install
npm update
63 và nó sẽ được tải động

Tạo tuyến đường mới

Nếu bạn cần thêm nhiều tuyến đường hơn vào dự án, chỉ cần tạo một tệp mới trong

cd myproject
npm install
npm update
64 và nó sẽ được tải động

Tạo bộ điều khiển mới

Khi bạn tạo bộ điều khiển mới, hãy thử tạo một thư mục khác có xác thực và trợ giúp. Bán tại.

cd myproject
npm install
npm update
65,
cd myproject
npm install
npm update
66 và
cd myproject
npm install
npm update
67. Một ví dụ về điều này được bao gồm trong kho lưu trữ

Lỗi hoặc cải tiến

Vui lòng báo cáo bất kỳ lỗi hoặc cải tiến nào. Yêu cầu kéo luôn được chào đón

Giấy phép

Dự án này là phần mềm nguồn mở được cấp phép theo Giấy phép MIT. Xem tệp GIẤY PHÉP để biết thêm thông tin