Quyền và Vai trò Người dùng của Strapi đối với Admin Panel

Quyền và Vai trò Người dùng của Strapi đối với Admin Panel

Quản lý người dùng trong phát triển phần mềm là một yếu tố cần thiết trong an ninh mạng. Trong làn sóng tội phạm mạng ngày càng gia tăng, làm thế nào để bạn đảm bảo Ủy quyền và Xác thực được thực hiện một cách chính xác? Ủy quyền và Xác thực không đúng là lý do tại sao phần mềm của bạn dễ bị tấn công.

Nếu bạn quan tâm đến các quy định về an toàn và tuân thủ dữ liệu của người dùng , thì việc bảo mật và quản lý quyền truy cập của người dùng phải là mối quan tâm hàng đầu của bạn. Điều này không khác gì đối với một ứng dụng được xây dựng bằng Strapi. Ý thức bảo mật là một chủ đề thiết yếu trong các ngành công nghiệp phần mềm. Vì những lý do này, Strapi cho phép bạn quản lý Xác thực người dùng cuối bằng Plugin Người dùng và Quyền và khởi chạy Kiểm soát truy cập dựa trên vai trò (RBAC) cho người dùng quản trị trong bảng điều khiển quản trị.

Điều kiện tiên quyết

Bạn cần những điều sau để hiểu quản lý người dùng trong Strapi.

Bàn thắng

Mục tiêu của bài viết này là giải thích cách quản lý người dùng hoạt động và cách triển khai quản lý người dùng. Đối tượng mục tiêu sẽ hiểu cách quản lý người dùng trong Strapi theo các quy định về tuân thủ dữ liệu.

Bài viết này sẽ tìm hiểu ngắn gọn về quản lý người dùng trong Strapi, cách quản lý người dùng cho người dùng cuối và người dùng quản trị hoạt động trong Strapi, Xác thực cục bộ và việc sử dụng của Nhà cung cấp đối với Xác thực người dùng cuối bằng Strapi.

Người dùng cuối so với người dùng quản trị

Mặc dù Xác thực và Ủy quyền đều là các quy trình bảo mật trong Quản lý Danh tính và Truy cập (IAM) , chúng khác nhau. Trong khi Xác thực cố gắng xác định người dùng để đảm bảo họ là ai, Ủy quyền cho phép người dùng truy cập các tài nguyên / tài liệu cụ thể dựa trên Vai trò của họ (họ là ai).

Hãy nghĩ về Xác thực giống như khi bạn cố gắng đăng nhập vào tài khoản Facebook của mình. Nếu bạn không cung cấp thông tin đăng nhập chính xác (email và mật khẩu), bạn sẽ không được phép truy cập vào tài khoản của mình mặc dù đó là tài khoản của bạn. Bạn sẽ chỉ được phép truy cập vào tài khoản của mình (đã được xác thực) khi bạn cung cấp thông tin đăng nhập chính xác. Hệ thống muốn chắc chắn rằng bạn là chính mình.

Đối với Ủy quyền, hãy nghĩ đến việc sở hữu một trang Facebook. Khi bạn truy cập trang Facebook, bạn là quản trị viên kể từ khi bạn sở hữu trang đó. Do đó, bạn có thể đăng nội dung trên trang của mình, sửa đổi nội dung và thậm chí phê duyệt nội dung từ các thành viên trên trang của bạn không phải là quản trị viên. Khi các thành viên trong nhóm của bạn không phải là quản trị viên cố gắng phê duyệt nội dung của người khác, họ sẽ phát hiện ra rằng họ không thể. Điều này là do họ không có quyền làm điều đó; chỉ quản trị viên mới có thể.

Người dùng cuối trong Strapi giống như người dùng đăng nhập vào tài khoản Facebook của họ. Chúng được quản lý bằng Plugin Người dùng và Quyền và không phải là quản trị viên. Đồng thời, người dùng quản trị giống như chủ sở hữu của một trang Facebook. Họ là quản trị viên và được quản lý trong bảng quản trị.

Bảng điều khiển quản trị so với người dùng và plugin quyền

Mặc dù Plugin Người dùng và Quyền cung cấp tính năng quản lý người dùng giống như bảng điều khiển quản trị, nhưng điều cần thiết là phải biết rằng hai plugin này cung cấp tính năng quản lý người dùng cho các kiểu người dùng khác nhau. Bảng quản trị cho phép bạn triển khai Kiểm soát truy cập dựa trên vai trò cho người dùng có quyền truy cập vào bảng quản trị. Ngược lại, Plugin Người dùng và Quyền sẽ cho phép bạn quản lý Người dùng cuối và thực thi Xác thực.

Để hiểu rõ hơn điều này, hãy xem ví dụ về một công ty viết blog nhỏ. Công ty này có rất nhiều tác giả, biên tập viên và giám đốc về sự thành công của khách hàng. Để tổ chức các quy trình trong công ty này, các tác giả chỉ cần truy cập các bài đăng của họ, trong khi các biên tập viên phải có quyền truy cập vào tất cả các bài đăng mà họ sẽ chỉnh sửa. Giám đốc thành công của khách hàng phải có thể truy cập và quản lý tất cả các tính năng liên quan đến bài đăng. Do đó, các tác giả có thể được chỉ định cho vai trò tác giả, biên tập viên cho vai trò biên tập và giám đốc thành công của khách hàng cho vai trò quản trị viên cấp cao trong bảng quản trị.

phân quyền Strapi

Các vai trò trong bảng quản trị theo mặc định là Tác giả , Biên tập viênQuản trị viên cấp cao . Theo mặc định, người dùng tạo ứng dụng Strapi được chỉ định vai trò Quản trị viên cấp cao. Bạn có thể chỉnh sửa bất kỳ Vai trò nào bằng cách nhấp vào nút chỉnh sửa bên cạnh mỗi Vai trò.

Tuy nhiên, việc quản lý người dùng trong Plugin Người dùng và Quyền là khác nhau. Ví dụ: bạn muốn người đọc các bài báo trong blog của bạn bỏ nhận xét sau khi đọc các bài viết của tác giả. Để làm điều này, họ sẽ cần đăng ký một tài khoản. Tại đây, bạn có thể cần đặt Plugin Người dùng và Quyền để cho phép người dùng, dù đã đăng ký hay chưa, có thể xem các bài viết trong blog của bạn. Tuy nhiên, bạn có thể không muốn người dùng chưa đăng ký (chưa được xác thực) bình luận trừ khi họ đăng ký.

Các vai trò trong bảng quản trị theo mặc định là Tác giả , Biên tập viên và Quản trị viên cấp cao .

Các vai trò trong Plugin Người dùng và Quyền theo mặc định là các vai trò Công khaiXác thực . Theo mặc định, người dùng đã đăng ký được chỉ định cho Vai trò được xác thực .

Thêm người dùng mới vào bảng quản trị

Khi blog của bạn tiếp tục phát triển, bạn sẽ cần thuê thêm tác giả và biên tập viên. Hãy đăng ký một người dùng mới (tác giả) cho blog của chúng tôi trong bảng quản trị.

  • Đầu tiên, điều hướng đến Cài đặt trong bảng điều hướng bên trái. Nhấp vào Người dùng trong phần Bảng quản trị . Bạn sẽ thấy hình ảnh bên dưới.

Đầu tiên, điều hướng đến Cài đặt trong bảng điều hướng bên trái. Nhấp vào Người dùng trong phần Bảng quản trị .

  • Tiếp theo, nhấp vào nút Mời người dùng mới màu xanh lam . Điền thông tin chi tiết của người dùng và vai trò của người dùng. Người dùng có thể được chỉ định cho nhiều vai trò. Tuy nhiên, trong trường hợp này, chúng tôi đang chỉ định người dùng với vai trò Tác giả . Tại thời điểm này, bạn sẽ được yêu cầu gửi mã thông báo đăng ký cho người dùng để họ có thể kết nối.

Người dùng có thể được chỉ định cho nhiều vai trò.

  • Vì ứng dụng mẫu của chúng tôi được lưu trữ cục bộ, hãy sao chép liên kết và dán vào trình duyệt của bạn. Tiếp theo, chúng tôi sẽ được chuyển đến trang này sau khi tải đăng ký mã thông báo.

Điền các thông tin cần thiết và nhấp vào nút Let's Start. Lưu ý rằng bảng điều khiển

Ảnh chụp màn hình để giải thích

Các vai trò trong bảng quản trị theo mặc định là Tác giả , Biên tập viênQuản trị viên cấp cao . Theo mặc định, người dùng tạo ứng dụng Strapi được chỉ định vai trò Quản trị viên cấp cao. Bạn có thể chỉnh sửa bất kỳ Vai trò nào bằng cách nhấp vào nút chỉnh sửa bên cạnh mỗi Vai trò.

Tuy nhiên, việc quản lý người dùng trong Plugin Người dùng và Quyền là khác nhau. Ví dụ: bạn muốn người đọc các bài báo trong blog của bạn bỏ nhận xét sau khi đọc các bài viết của tác giả. Để làm điều này, họ sẽ cần đăng ký một tài khoản. Tại đây, bạn có thể cần đặt Plugin Người dùng và Quyền để cho phép người dùng, dù đã đăng ký hay chưa, có thể xem các bài viết trong blog của bạn. Tuy nhiên, bạn có thể không muốn người dùng chưa đăng ký (chưa được xác thực) bình luận trừ khi họ đăng ký.

Vật mẫu

Các vai trò trong Plugin Người dùng và Quyền theo mặc định là các vai trò Công khaiXác thực . Theo mặc định, người dùng đã đăng ký được chỉ định cho Vai trò được xác thực .

Thêm người dùng mới vào bảng quản trị

Khi blog của bạn tiếp tục phát triển, bạn sẽ cần thuê thêm tác giả và biên tập viên. Hãy đăng ký một người dùng mới (tác giả) cho blog của chúng tôi trong bảng quản trị.

  • Đầu tiên, điều hướng đến Cài đặt trong bảng điều hướng bên trái. Nhấp vào Người dùng trong phần Bảng quản trị . Bạn sẽ thấy hình ảnh bên dưới.

Vật mẫu

  • Tiếp theo, nhấp vào nút Mời người dùng mới màu xanh lam . Điền thông tin chi tiết của người dùng và vai trò của người dùng. Người dùng có thể được chỉ định cho nhiều vai trò. Tuy nhiên, trong trường hợp này, chúng tôi đang chỉ định người dùng với vai trò Tác giả . Tại thời điểm này, bạn sẽ được yêu cầu gửi mã thông báo đăng ký cho người dùng để họ có thể kết nối.

Ảnh chụp màn hình mẫu

  • Vì ứng dụng mẫu của chúng tôi được lưu trữ cục bộ, hãy sao chép liên kết và dán vào trình duyệt của bạn. Tiếp theo, chúng tôi sẽ được chuyển đến trang này sau khi tải đăng ký mã thông báo.

Ảnh chụp màn hình mẫu

  • Điền các thông tin cần thiết và nhấp vào nút Let’s Start. Lưu ý rằng bảng điều khiển người dùng mới mà bạn vừa đăng ký chỉ có thư viện phương tiện để tải tệp lên. Quản trị viên cấp cao có thể xem các tệp do bất kỳ người dùng nào tải lên. Ngoài ra, hãy lưu ý rằng khi bạn điều hướng đến Cài đặt / Bảng quản trị / vai trò, tức là, http: // localhost: 1337 / admin / settings / role , bây giờ bạn đã có một tác giả đã đăng ký.

Giải thích về quản lý người dùng trong bảng quản trị

Phần này sẽ tạo một blog mẫu với hai tác giả, hai biên tập viên và một quản trị viên cấp cao. Mục tiêu của blog mẫu này là để hiểu cách quản lý người dùng trong bảng quản trị được thực hiện.

  • Giống như trong ví dụ cuối cùng của chúng tôi về việc thêm người dùng mới vào bảng điều khiển quản trị, hãy thêm một tác giả nữa và hai biên tập viên.
  • Điều hướng đến tab nơi một trong các tác giả đã đăng nhập và thêm phương tiện. Đối với tôi, tôi sẽ thêm tệp Jpeg cho một trong những người dùng của tôi. Để thực hiện việc này, hãy nhấp vào Thư viện phương tiện trong tab điều hướng. Tiếp theo, nhấp vào nút Tải nội dung lên và bạn sẽ được nhắc tải lên nội dung.

Giải thích về quản lý người dùng trong bảng quản trị strapi

Khi bạn điều hướng đến tab nơi quản trị viên cấp cao hoặc người chỉnh sửa đã đăng nhập và điều hướng đến p lugins / media library , tức là http: // localhost: 1337 / admin / plugins / upload , bạn sẽ thấy tệp bạn vừa tải lên. Tuy nhiên, chỉ tác giả đã tải tệp lên mới có thể xem được; tác giả khác không thể đánh giá nó.

Cũng giống như một blog thông thường, các biên tập viên có thể thay thế phương tiện được đăng bởi một tác giả. Khi bạn tùy chỉnh các vai trò trong bảng điều khiển quản trị, bạn có thể cấp quyền cho người chỉnh sửa để chỉ truy cập các bài đăng của tác giả được chỉ định cho họ.

Ngoài ra, bạn có thể tạo các loại bộ sưu tập mới cho các bài viết của mình và chỉ định vai trò cho những người dùng có thể chỉ định chúng.

  • Tiếp theo, nhấp vào nút Mời người dùng mới màu xanh lam . Điền thông tin chi tiết của người dùng và vai trò của người dùng. Người dùng có thể được chỉ định cho nhiều vai trò. Tuy nhiên, trong trường hợp này, chúng tôi đang chỉ định người dùng với vai trò Tác giả . Tại thời điểm này, bạn sẽ được yêu cầu gửi mã thông báo đăng ký cho người dùng để họ có thể kết nối.

Ảnh chụp màn hình mẫu

  • Vì ứng dụng mẫu của chúng tôi được lưu trữ cục bộ, hãy sao chép liên kết và dán vào trình duyệt của bạn. Tiếp theo, chúng tôi sẽ được chuyển đến trang này sau khi tải đăng ký mã thông báo.

Ảnh chụp màn hình mẫu

  • Điền các thông tin cần thiết và nhấp vào nút Let’s Start. Lưu ý rằng bảng điều khiển người dùng mới mà bạn vừa đăng ký chỉ có thư viện phương tiện để tải tệp lên. Quản trị viên cấp cao có thể xem các tệp do bất kỳ người dùng nào tải lên. Ngoài ra, hãy lưu ý rằng khi bạn điều hướng đến Cài đặt / Bảng quản trị / vai trò, tức là, http: // localhost: 1337 / admin / settings / role , bây giờ bạn đã có một tác giả đã đăng ký.

Giải thích về quản lý người dùng trong bảng quản trị

Phần này sẽ tạo một blog mẫu với hai tác giả, hai biên tập viên và một quản trị viên cấp cao. Mục tiêu của blog mẫu này là để hiểu cách quản lý người dùng trong bảng quản trị được thực hiện.

  • Giống như trong ví dụ cuối cùng của chúng tôi về việc thêm người dùng mới vào bảng điều khiển quản trị, hãy thêm một tác giả nữa và hai biên tập viên.
  • Điều hướng đến tab nơi một trong các tác giả đã đăng nhập và thêm phương tiện. Đối với tôi, tôi sẽ thêm tệp Jpeg cho một trong những người dùng của tôi. Để thực hiện việc này, hãy nhấp vào Thư viện phương tiện trong tab điều hướng. Tiếp theo, nhấp vào nút Tải nội dung lên và bạn sẽ được nhắc tải lên nội dung.

Ảnh chụp màn hình mẫu

Khi bạn điều hướng đến tab nơi quản trị viên cấp cao hoặc người chỉnh sửa đã đăng nhập và điều hướng đến p lugins / media library , tức là http: // localhost: 1337 / admin / plugins / upload , bạn sẽ thấy tệp bạn vừa tải lên. Tuy nhiên, chỉ tác giả đã tải tệp lên mới có thể xem được; tác giả khác không thể đánh giá nó.

Cũng giống như một blog thông thường, các biên tập viên có thể thay thế phương tiện được đăng bởi một tác giả. Khi bạn tùy chỉnh các vai trò trong bảng điều khiển quản trị, bạn có thể cấp quyền cho người chỉnh sửa để chỉ truy cập các bài đăng của tác giả được chỉ định cho họ.

Ngoài ra, bạn có thể tạo các loại bộ sưu tập mới cho các bài viết của mình và chỉ định vai trò cho những người dùng có thể chỉ định chúng.

Cập nhật và thêm vai trò mới trong bảng quản trị

Bạn có thể cập nhật quyền của từng Vai trò cũng như thêm các vai trò mới. Chúng tôi chỉ có ba Vai trò theo mặc định. Tuy nhiên, chúng tôi có thể quyết định thêm nhiều Vai trò hơn vào bảng điều khiển quản trị.

Ví dụ, trong ứng dụng blog mẫu của chúng tôi, chúng tôi có thể yêu cầu một tổng biên tập. Anh ấy không bị giới hạn chỉ truy cập các bài đăng mà anh ấy được chỉ định chỉnh sửa, nhưng anh ấy có thể truy cập tất cả các Bài đăng trên diễn đàn. Để thêm một vai trò mới cho tổng biên tập của chúng tôi:

  1. Điều hướng đến Cài đặt / Bảng quản trị / Vai trò, tức là, http: // localhost: 1337 / admin / settings / role
  2. Nhấp vào nút Thêm vai trò mới.
  3. Điền các thông tin cần thiết và Vai trò mới bạn vừa tạo sẽ xuất hiện trong bảng điều khiển quản trị.

Để cập nhật một vai trò đã có, hãy nhấp vào nút chỉnh sửa bên cạnh Vai trò. Vui lòng tìm kiếm chức năng bạn muốn cập nhật và nhấp vào hộp để chọn.

Quản lý người dùng cho người dùng cuối

Trong phần này, chúng ta sẽ khám phá các trạng thái khác nhau của người dùng cuối. Từ Vai trò công khai đến Vai trò được xác thực và cách quản lý quyền cho người dùng cuối.

Vai trò công cộng

Vai trò công khai là vai trò mặc định được liên kết với mọi yêu cầu không có tiêu đề ủy quyền. Nếu bạn cho phép một số quyền trong Vai trò này, mọi người sẽ có thể truy cập các tuyến đường hoặc điểm cuối mà bạn đã chọn.

Vai trò được xác thực

Mọi người dùng mới đăng nhập (được xác thực) đều được cấp Vai trò này theo mặc định nếu bạn không cung cấp vai trò cho họ khi tạo. Trong Vai trò này, bạn có thể xác định các tuyến đường mà người dùng đã xác thực có thể truy cập.

Quyền quản lý

Để quản lý hoặc sửa đổi quyền của vai trò người dùng, hãy nhấp vào tên vai trò trong trang tổng quan. Điều này sẽ cho phép bạn xem tất cả các chức năng liên quan đến một tuyến đường cụ thể có sẵn trong ứng dụng của bạn. Chọn hoặc bỏ chọn tên chức năng để cho phép Vai trò hiện tại mà bạn đang chỉnh sửa.

Hầu hết các lần, người dùng mới không được giao vai trò. Để cập nhật vai trò mặc định và gán một vai trò mới cho người dùng, hãy điều hướng đến tab Cài đặt nâng cao và cập nhật tùy chọn Vai trò mặc định cho người dùng được xác thực . Vui lòng tìm kiếm người dùng và cập nhật Vai trò của họ.

Xác thực cục bộ cho người dùng cuối

Đối với người dùng cuối Strapi, xác thực có thể được thực hiện cục bộ hoặc sử dụng nhà cung cấp. Trong phần này, chúng ta sẽ tìm hiểu xác thực cục bộ trong Strapi là gì. Xác thực cục bộ liên quan đến xác thực cục bộ trên Strapi bằng thông tin đăng nhập của bạn. Ở đây, chúng ta sẽ thảo luận về cách đăng ký và xác thực có thể được thực hiện cục bộ trên Strapi.

Sự đăng ký

Đăng ký trong bảng quản trị của Strapi khá đơn giản. Khi plugin này được cài đặt, bạn có thể đăng ký người dùng với Axios bằng cách đăng dữ liệu của họ vào cơ sở dữ liệu của bạn, như trong ví dụ bên dưới.

//import axios
    import axios from 'axios';
    
    // Add your own code here to customize or restrict how the public can register new users.
    
    // make post request with user's credential
    axios
      .post('http://localhost:1337/auth/local/register', {
        username: 'username',
        email: 'email',
        password: 'password',
      })
      .then(response => {
        // If user was registered successfully .....
        console.log('Well done!');
        console.log('User profile', response.data.user);
        console.log('User token', response.data.jwt);
      })
      .catch(error => {
        // If there was an error .......
        console.log('An error occurred:', error.response);
      });

Giá trị nhận dạng trong lệnh gọi API có thể là email hoặc tên người dùng của người dùng.

Sử dụng mã thông báo

Khi bạn muốn giới hạn người dùng có thể truy cập một số tuyến đường hoặc tài liệu dựa trên Vai trò của họ, bạn có thể sử dụng mã thông báo JWT và đặt mã thông báo web JSON trong tiêu đề ủy quyền của yêu cầu API của bạn cho các yêu cầu cấp quyền hạn chế.

Nếu bạn không đặt tiêu đề ủy quyền trong các yêu cầu API của mình, thì yêu cầu đó sẽ đảm nhận quyền vai trò công khai theo mặc định. Dưới đây là ví dụ về yêu cầu API với tiêu đề ủy quyền.

 //import axios
    import axios from 'axios';
    
    // place your token here or you can use a .env file.
    const token = 'YOUR_TOKEN_HERE';
    
    // make post request.
    axios
      .get('http://localhost:1337/posts', {
    // place authorization header here
        headers: {
          Authorization: `Bearer ${token}`,
        },
      })
      .then(response => {
        // If user was registered successfully .....
        console.log('Data: ', response.data);
      })
      .catch(error => {
        // If there was an error .......
        console.log('An error occurred:', error.response);
      });

Ví dụ trên đặt tiêu đề ủy quyền trong yêu cầu API để truy xuất các bài đăng. Hãy nhớ rằng khi người dùng được xác thực thành công, mã thông báo người dùng sẽ được gửi như được thấy trong ví dụ đăng nhập console.log của chúng tôi (‘Mã thông báo người dùng’, response.data.jwt); .

Nếu mã thông báo của người dùng không tương ứng với mã thông báo được yêu cầu trong quá trình ủy quyền, lỗi sẽ xảy ra và mã lỗi 401 (trái phép) sẽ được hiển thị.

Xác thực Email

Để tránh gửi thư rác, bạn có thể muốn gửi email đến những người dùng đã đăng ký để xác thực đăng ký của họ. Để thực hiện việc này, hãy đặt Bật xác nhận email thành BẬT trong trang tổng quan quản trị. Đảm bảo rằng thuộc tính cấu hình URL được đặt để người dùng có thể nhận được liên kết xác nhận. Đôi khi, cần phải gửi lại thư xác nhận cho người dùng. Để làm điều này, hãy thực hiện một yêu cầu như ví dụ bên dưới.

// import axios
    import axios from 'axios';
    
    // Send validation email
    axios
      .post(`http://localhost:1337/auth/send-email-confirmation`, {
        email: 'user@strapi.io', // user's email
      })
      .then(response => {
        // If user was registered successfully .....
        console.log('Your user received an email');
      })
      .catch(error => {
      // If there was an error .......
        console.error('An error occurred:', error.response);
      });

Xác thực cục bộ cho người dùng cuối

Đối với người dùng cuối Strapi, xác thực có thể được thực hiện cục bộ hoặc sử dụng nhà cung cấp. Trong phần này, chúng ta sẽ tìm hiểu xác thực cục bộ trong Strapi là gì. Xác thực cục bộ liên quan đến xác thực cục bộ trên Strapi bằng thông tin đăng nhập của bạn. Ở đây, chúng ta sẽ thảo luận về cách đăng ký và xác thực có thể được thực hiện cục bộ trên Strapi.

Sự đăng ký

Đăng ký trong bảng quản trị của Strapi khá đơn giản. Khi plugin này được cài đặt, bạn có thể đăng ký người dùng với Axios bằng cách đăng dữ liệu của họ vào cơ sở dữ liệu của bạn, như trong ví dụ bên dưới.

    //import axios
    import axios from 'axios';
    
    // Add your own code here to customize or restrict how the public can register new users.
    
    // make post request with user's credential
    axios
      .post('http://localhost:1337/auth/local/register', {
        username: 'username',
        email: 'email',
        password: 'password',
      })
      .then(response => {
        // If user was registered successfully .....
        console.log('Well done!');
        console.log('User profile', response.data.user);
        console.log('User token', response.data.jwt);
      })
      .catch(error => {
        // If there was an error .......
        console.log('An error occurred:', error.response);
      });

Giá trị nhận dạng trong lệnh gọi API có thể là email hoặc tên người dùng của người dùng.

Sử dụng mã thông báo

Khi bạn muốn giới hạn người dùng có thể truy cập một số tuyến đường hoặc tài liệu dựa trên Vai trò của họ, bạn có thể sử dụng mã thông báo JWT và đặt mã thông báo web JSON trong tiêu đề ủy quyền của yêu cầu API của bạn cho các yêu cầu cấp quyền hạn chế.

Nếu bạn không đặt tiêu đề ủy quyền trong các yêu cầu API của mình, thì yêu cầu đó sẽ đảm nhận quyền vai trò công khai theo mặc định. Dưới đây là ví dụ về yêu cầu API với tiêu đề ủy quyền.

 //import axios
    import axios from 'axios';
    
    // place your token here or you can use a .env file.
    const token = 'YOUR_TOKEN_HERE';
    
    // make post request.
    axios
      .get('http://localhost:1337/posts', {
    // place authorization header here
        headers: {
          Authorization: `Bearer ${token}`,
        },
      })
      .then(response => {
        // If user was registered successfully .....
        console.log('Data: ', response.data);
      })
      .catch(error => {
        // If there was an error .......
        console.log('An error occurred:', error.response);
      });

Ví dụ trên đặt tiêu đề ủy quyền trong yêu cầu API để truy xuất các bài đăng. Hãy nhớ rằng khi người dùng được xác thực thành công, mã thông báo người dùng sẽ được gửi như được thấy trong ví dụ đăng nhập console.log của chúng tôi (‘Mã thông báo người dùng’, response.data.jwt); .

Nếu mã thông báo của người dùng không tương ứng với mã thông báo được yêu cầu trong quá trình ủy quyền, lỗi sẽ xảy ra và mã lỗi 401 (trái phép) sẽ được hiển thị.

Xác thực Email

Để tránh gửi thư rác, bạn có thể muốn gửi email đến những người dùng đã đăng ký để xác thực đăng ký của họ. Để thực hiện việc này, hãy đặt Bật xác nhận email thành BẬT trong trang tổng quan quản trị. Đảm bảo rằng thuộc tính cấu hình URL được đặt để người dùng có thể nhận được liên kết xác nhận. Đôi khi, cần phải gửi lại thư xác nhận cho người dùng. Để làm điều này, hãy thực hiện một yêu cầu như ví dụ bên dưới.

    // import axios
    import axios from 'axios';
    
    // Send validation email
    axios
      .post(`http://localhost:1337/auth/send-email-confirmation`, {
        email: 'user@strapi.io', // user's email
      })
      .then(response => {
        // If user was registered successfully .....
        console.log('Your user received an email');
      })
      .catch(error => {
      // If there was an error .......
        console.error('An error occurred:', error.response);
      });

Việc sử dụng nhà cung cấp để xác thực người dùng cuối

Đối với hầu hết người dùng, việc tạo hồ sơ mới cho từng phần mềm mà họ sắp sử dụng trở nên căng thẳng hơn. Để giải quyết vấn đề này, Strapi cho phép người dùng đăng nhập với sự trợ giúp của các nhà cung cấp. Ví dụ: bạn có thể đăng nhập vào tài khoản Strapi của mình bằng GitHub. Bạn có thể triển khai tính năng này với ứng dụng của mình được xây dựng bằng Strapi để người dùng của bạn có thể sử dụng các nhà cung cấp như Facebook hoặc Google để đăng nhập vào ứng dụng của họ.

Strapi cho phép người dùng đăng nhập hoặc đăng ký với các nhà cung cấp sau:

  • GitHub
  • Facebook
  • Google
  • AWS Cognito
  • Twitter
  • Bất hòa
  • Twitch
  • Instagram
  • VK
  • Linkedin
  • Reddit
  • Auth0

Giải thích chi tiết về cách kết hợp từng nhà cung cấp trong ứng dụng của bạn được hiển thị trong tài liệu này .

 

Nguồn: https://strapi.io/blog/strapi-s-user-roles-and-permissions-for-admin-panel-1

Bài viết liên quan

2022.11.25
BEIT ký hợp đồng triển khai hệ thống quản lý với MyGym

Ngày 25/11/2022 ra lễ ký kết hợp đồng giữa công ty trách nhiệm hữu hạn Công nghệ BEIT và công […]

2022.11.09
BEIT tập trung xây dựng kho mẫu website chất lượng cao

Vì nhu cầu của khách hàng rất lớn về website chuẩn SEO và chất lượng, vì thế BEIT đã và […]

2022.11.01
Công ty BEIT phát triển website trên nền tảng Shopify

Công ty phát triển website dựa vào nền tảng  Shopify (Shopify Development Agency) Khởi chạy cửa hàng trực tuyến và […]

2022.10.28
Công ty BEIT phát triển mảng Game Online CHPlay, IOS

DỊCH VỤ PHÁT TRIỂN TRÒ CHƠI (Game) Công ty phát triển trò chơi điện tử của chúng tôi điều hành […]

2022.10.26
BEIT xây dựng website cho công ty UPTEMPO Hàn Quốc

Website của công ty UPTEMPO được xây dựng bởi BEIT. Chúng tôi luôn mong muốn tạo niểm tin cho khách […]

2022.10.07
XÂY DỰNG MỘT API ĐẦY ĐỦ với NodeJS + Strapi trong 5 phút hoặc ít hơn (tuyệt vời!)

Một thời gian trước, tôi đã quyết định sử dụng công cụ #strapi tuyệt vời này. Kết quả kiểm tra […]

Giới thiệu

Chúng tôi có kinh nghiệm trong phát triển các dự án E-commerce, phần mềm quản lý, Mobi app, các dự án outsource. Với những công nghệ mới nhất hiện nay.

Tìm kiếm