Xác thực JWT với Golang (P1)

Tram Ho

I. Giới thiệu

  • Mình viết bài thường tìm xem viblo đã có chưa, nếu có mình sẽ không viết nữa, nhưng trong series này để các bạn có một cái nhìn tổng quan thì mình sẽ lại viết một bài về authenticate jwt với golang.
  • Bài này mình sẽ giới thiệu cho bạn cái base mình tự build cũng ngon lắm à nha

II. Triển khai

Trươc tiên mình sẽ gioi thiệu về cấu trúc folder để cho bạn dễ hình dung trước và mình sẽ trình bày lần lượt từ a->z.

Trông kha giống laravel đúng không?

  • Trước tiên là mình sẽ tạo một helper để custom response

  • Như mọi người đã biết thì mình sẽ run lệnh go run index.go để start server vậy xem trong file này chứa gì nhé (mình sử dụng framework gin để thực hiện series này nhé)

Như code thì bạn thấy file này sẽ để gọi router và connect database,

  • Setup database trong config

  • Trong folder routes bạn tạo thêm một file index.go nhé

Ở đây mình tạo ra 2 api đó là login, register để giành cho việc authenticate. tiếp tục xem authController sẽ xử lý gì nhé. Như khởi tạo bạn có thể tháy mình đã sử dụng cả service, repository… cho nên cùng xem lần lượt các instance này làm gi tiếp nhé

Như trong routes mình đã import thì ở trong controller này mình đã gọi server, repository vào để sử dụng.
Trước tiên là thực hiện function Register, việc đầu tiên là chúng ta phải validate, và mình có tạo một file validate sương sương

Tiếp theo sau khi pass validate thì vào bước xử lý nhé, ở đây mình có check duplicate mail sau đó thì sẽ tạo tài khoản

Hàm để check duplicate mail

Bây gio tiến hành test nhé với cổng mặc định là 8080
Đây là trường hợp không pass validate

Và đây là trường hợp pass validate

III. Kết thúc

Do mình viết cũng khá chi tiết cả về code và cả về cấu trúc folder dự án nên cũng tương đối dài, cho nên mình sẽ gianh phần login và crud cho bài viết lần sau.

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo