Trong bài viết này, chúng ta sẽ xem xét cách nền tảng không mã AppMaster.io giải quyết vấn đề truy cập dữ liệu cho người dùng ứng dụng.
Nó xảy ra bằng cách giới thiệu các vai trò như Người dùng, Người điều hành, Quản trị viên và các yêu cầu khác. Giải pháp này mang lại sự linh hoạt hơn bên trong ứng dụng đã xây dựng của bạn và kiểm soát quyền truy cập thông tin và chức năng bên trong ứng dụng đã xây dựng.
Bài viết sẽ hữu ích cho bất kỳ ai muốn đi sâu vào chức năng của nền tảng AppMaster.io và xem khả năng của nó về cài đặt truy cập dữ liệu theo vai trò.
Мodule Auth của AppMaster.io
Đăng ký trong ứng dụng được tập hợp trên nền tảng của chúng tôi được đại diện bởi mô-đun Auth , cho phép bạn tạo và chỉnh sửa các nhóm người dùng và truy cập các quyền của họ. Mô-đun Auth đã được cài đặt sẵn vào dự án khi nó được tạo.
Cài đặt mô-đun Auth có sẵn:
SignUp Groups - danh sách các nhóm người dùng có thể đăng ký;
SignUp - bao gồm khả năng đăng ký trong ứng dụng;
Thời gian chờ của phiên (phút ) - thời gian mà sau đó phiên của người dùng hiện tại sẽ kết thúc nếu Người dùng không sử dụng (tính bằng phút). Mặc định là 60 phút;
Độ trễ đăng nhập không thành công (tính bằng mili giây) - thời gian trì hoãn phản hồi của máy chủ trong trường hợp cố gắng đăng nhập không thành công (tính bằng mili giây). Mặc định là 0 ms;
Yêu cầu xác nhận email - một tùy chọn liên quan đến xác minh qua email nếu được bật;
Người dùng đã đăng ký đang hoạt động - đặt thuộc tính hoạt động thành True cho mỗi Người dùng đã đăng ký.
Nhóm - cho phép bạn tạo và chỉnh sửa nhóm người dùng.
AppMaster.io sử dụng Trình thiết kế mô hình dữ liệu để làm việc với các mô hình.
Người dùng và Phiên người dùng là hai mô hình được tạo tự động trong Trình thiết kế mô hình dữ liệu. Không thể sửa đổi hoặc xóa các trường mô hình dữ liệu được cài đặt sẵn, nhưng có thể thêm các trường mới.
Đối với các mô hình này, các khối quy trình nghiệp vụ (BP) cũng được tạo tự động.
Các BP được tạo tự động được liên kết với Người dùng và Phiên của người dùng
- Mô hình người dùng
DB: Delete User - xóa đối tượng Người dùng khỏi cơ sở dữ liệu thông qua ID;
DB: Cập nhật Người dùng - đặt lại tất cả các trường của khối Đối tượng người dùng được chuyển đến đầu vào trong cơ sở dữ liệu và cập nhật chúng theo các giá trị được chỉ định (để chỉ thay đổi các trường được chỉ định, khối DB: Bản vá Người dùng được sử dụng);
DB: Tạo Người dùng - lưu trữ trong cơ sở dữ liệu và trả về đối tượng Người dùng đã cho (để xây dựng nó từ các trường nhất định, hãy sử dụng khối Tạo Người dùng);
DB: Soft Delete User - cập nhật thuộc tính DelisedAt trên đối tượng User và để nó trong cơ sở dữ liệu;
DB: Người dùng xóa hàng loạt - lấy làm đầu vào một mảng ID (id) của các đối tượng Người dùng sẽ bị xóa khỏi cơ sở dữ liệu;
fail_ids - một mảng ID người dùng sẽ không bị xóa;
DB: Patch User - cập nhật các trường được chỉ định của đối tượng Người dùng trong cơ sở dữ liệu (để đặt lại tất cả các trường, hãy sử dụng khối DB: Cập nhật Người dùng);
DB: Tìm kiếm Người dùng - tìm một hoặc nhiều đối tượng Người dùng trong cơ sở dữ liệu dựa trên các trường và trả về chúng;
DB: GetOne User - tìm đối tượng Người dùng trong cơ sở dữ liệu theo ID của nó và trả về nó;
Mở rộng Người dùng - trả về tất cả các trường của đối tượng Người dùng đã chọn;
Make User - tạo một đối tượng User mới trong bộ nhớ từ các trường đã cho và trả về nó (để lưu đối tượng đã tạo trong cơ sở dữ liệu, hãy sử dụng khối DB: Create User);
- Mô hình phiên người dùng
DB: Xóa phiên người dùng - xóa đối tượng Phiên người dùng khỏi cơ sở dữ liệu bằng ID đã chuyển;
DB: Cập nhật Phiên người dùng - đặt lại tất cả các trường của đối tượng Phiên người dùng được chuyển đến khối đầu vào trong cơ sở dữ liệu và cập nhật chúng theo các giá trị đã chỉ định (để chỉ thay đổi các trường được chỉ định, hãy sử dụng DB: Bản vá phiên người dùng);
DB: Tạo Phiên người dùng - lưu trữ trong cơ sở dữ liệu và trả về đối tượng Phiên người dùng đã cho (để xây dựng nó từ các trường nhất định, hãy sử dụng khối Tạo phiên người dùng);
DB: Soft Delete User Session - cập nhật thuộc tính DelisedAt của đối tượng User Session và để nó trong cơ sở dữ liệu;
DB: Phiên người dùng xóa hàng loạt - chấp nhận làm đầu vào một tập hợp các ID của các đối tượng Phiên người dùng sẽ bị xóa khỏi cơ sở dữ liệu;
fail_ids - mảng xác định tập hợp các ID sẽ không bị xóa;
DB: Patch User Session - cập nhật các trường được chỉ định của đối tượng Phiên người dùng trong cơ sở dữ liệu (để đặt lại tất cả các trường, hãy sử dụng khối DB: Cập nhật Phiên người dùng);
DB: Tìm kiếm Phiên người dùng - tìm một hoặc nhiều đối tượng Phiên người dùng trong cơ sở dữ liệu dựa trên các trường và trả về chúng;
DB: Phiên người dùng GetOne - tìm đối tượng Phiên người dùng trong cơ sở dữ liệu theo ID của nó và trả về đối tượng đó;
Mở rộng Phiên người dùng - trả về tất cả các trường của đối tượng Phiên người dùng đã chọn;
Make User Session - tạo một đối tượng User Session mới trong bộ nhớ từ các trường đã cho và trả về nó (để lưu đối tượng đã tạo trong cơ sở dữ liệu, hãy sử dụng khối DB: Create User Session);
- Mô-đun xác thực
Auth: Tạo mã thông báo xác thực - tạo mã thông báo ủy quyền (Auth Token) có độ dài nhất định;
Auth: Đăng ký - đăng ký người dùng mới;
Auth: Authorization - kiểm tra xem Mã thông báo xác thực có tồn tại trong hệ thống hay không và trả về người dùng được liên kết với nó;
Auth: Authentification - kiểm tra thông tin đăng nhập và mật khẩu của người dùng và trả về Mã thông báo xác thực;
Auth: Logout - chấp nhận Mã thông báo xác thực và kết thúc phiên người dùng hiện tại;
Auth: Lấy người dùng hiện tại - trả về dữ liệu của người dùng hiện tại;
Auth: Xóa người dùng khỏi nhóm - xóa người dùng khỏi nhóm được chỉ định theo ID của người đó (được xác định trong cài đặt của mô-đun Auth);
Auth: Thêm người dùng vào nhóm - thêm người dùng vào nhóm người dùng được chỉ định theo ID của nó (được xác định trong cài đặt mô-đun Auth);
Auth: Hash Password - chuyển đổi một chuỗi mật khẩu thành một hàm băm;
Auth: Restore Password - chấp nhận tên người dùng và mật khẩu mới của người dùng, do đó đặt lại nó;
Auth: Change Password - thay thế mật khẩu người dùng hiện tại bằng một mật khẩu mới;
Auth: Probe Password - xác minh mật khẩu và đối sánh hàm băm;
Điểm cuối của Mô-đun xác thực và mô hình Người dùng và Phiên người dùng được tạo tự động khi dự án được tạo.
Mô-đun xác thực
Loại yêu cầu | Điểm cuối | BP kết nối |
---|---|---|
/đăng xuất/ | Auth: Đăng xuất | |
/ auth / | Auth: Xác thực | |
/Đăng ký/ | Auth: Đăng ký | |
/xác nhận/ | Auth: Đăng ký | |
/ user / change-password | Auth: Thay đổi mật khẩu | |
/ user / restore-password / | Auth: Khôi phục mật khẩu | |
/Thông tin người dùng/ | Auth: Ủy quyền |
Người sử dụng
Loại yêu cầu | Điểm cuối | BP kết nối |
---|---|---|
/tên người dùng/ | DB: Cập nhật người dùng | |
/tên người dùng/ | DB: Xóa người dùng | |
/tên người dùng/ | DB: Người dùng GetOne | |
/người sử dụng/ | DB: Người dùng tìm kiếm | |
/tên người dùng | DB: Người dùng vá lỗi | |
/người sử dụng/ | DB: Tạo người dùng |
Phiên người dùng
Loại yêu cầu | Điểm cuối | BP kết nối |
---|---|---|
/ user-session /: id / | DB: Xóa phiên người dùng | |
/ user-session /: id / | DB: Phiên người dùng GetOne | |
/ user-session / | DB: Phiên người dùng tìm kiếm | |
/ user-session /: id / | DB: Phiên người dùng vá | |
/ user-session / | DB: Tạo phiên người dùng | |
/ user-session /: id / | DB: Cập nhật phiên người dùng |
Mã xác thực được sử dụng làm mã thông báo phiên hiện tại của Người dùng được ủy quyền. Trong ứng dụng web BP, có thể tương tác với mã thông báo này:
- Get Auth Token trả về Auth của phiên người dùng được xác thực hiện tại;
- Mã xác thực đặt ghi đè Mã xác thực của phiên hiện tại của người dùng được ủy quyền;
- Xóa Mã xác thực xóa Mã xác thực phiên hiện tại của người dùng được ủy quyền;
Ví dụ cho thấy làm thế nào để có được người dùng hiện tại.
Để thực hiện việc này, hãy chuyển đến tab Business logic và kéo khối Auth: Get hiện tại của người dùng.
Tiếp theo, một Điểm cuối được tạo cho BP đã tạo, điểm này sẽ được sử dụng để liên hệ với máy chủ để lấy đối tượng Người dùng hiện tại.
Chọn nhóm người dùng trong phần Endpoints và tạo phương thức yêu cầu GET cho quá trình mới được tạo để lấy Người dùng hiện tại.
Trong ứng dụng web BP, thực hiện yêu cầu tới điểm cuối đã tạo (Yêu cầu máy chủ GET / user_current) để lấy người dùng hiện tại.
Nhóm và Quyền
Nhóm người dùng được tạo trong cài đặt của mô-đun Auth. Để chuyển đến cài đặt mô-đun, bạn cần mở phần Mô-đun và nhấp vào thẻ của mô-đun tương ứng.
Tab Nhóm chứa danh sách tất cả các nhóm hiện có. Nhấp vào Thêm phần tử mới để tạo Nhóm người dùng mới. Trong cửa sổ phương thức mới, bạn có thể tùy chỉnh nhóm, thêm mô tả, biểu tượng, biểu tượng và màu nhãn và thẻ.
Để chỉnh sửa các nhóm người dùng hiện có, bạn cũng cần đi tới cài đặt của mô-đun Auth. Để thực hiện việc này, hãy chuyển đến phần Mô-đun và nhấp vào thẻ của mô-đun tương ứng. Tiếp theo, trong tab Groups sẽ hiện ra danh sách các nhóm, để chỉnh sửa bạn cần bấm vào biểu tượng cài đặt. Trong cửa sổ phương thức mới, bạn có thể tùy chỉnh nhóm, thay đổi mô tả, biểu tượng, biểu tượng và màu nhãn và thẻ.
Để thay đổi quyền đọc / ghi các mục nhập trong cơ sở dữ liệu cho một số nhóm người dùng nhất định, phần mềm Trung gian của mô-đun Auth được sử dụng.
Trong phần Điểm cuối, chọn Điểm cuối có quyền đọc / ghi bạn muốn thay đổi. Nhấp vào nút cài đặt trong Điểm cuối mong muốn và chuyển đến tab Phần mềm trung gian trong cửa sổ phương thức mở ra. Tiếp theo, bằng cách nhấp vào Chỉnh sửa cài đặt trong dòng với Phần mềm trung gian Token Auth, hãy thiết lập quyền truy cập.
Truy cập vào các trang trong ứng dụng web: Bạn cần vào ứng dụng web và nhấp vào nút Cài đặt của trang mà bạn muốn hạn chế quyền truy cập.
Trong trường Hiển thị cho nhóm, bạn phải chọn danh sách các nhóm người dùng sẽ được phép xem trang này. Theo mặc định, trường trống và được phép truy cập vào tất cả các danh mục người dùng.
Sự kết luận
Truy cập vào dữ liệu theo vai trò là một cách thuận tiện để tổ chức các luồng thông tin cho các nhóm người dùng cụ thể. Với nền tảng không mã AppMaster.io , bạn có thể thử nghiệm tính năng này trong bản dùng thử.
Nếu bạn ấn tượng với chức năng này, hãy tải gói Professional của chúng tôi, bao gồm tính năng này, cũng như xuất tệp nhị phân, sao lưu thường xuyên, chuyển dự án và hơn thế nữa. Chúng tôi đang chờ bạn trên nền tảng AppMaster.io để thực hiện ngay cả những dự án táo bạo nhất của bạn.