Hướng dẫn php generate token for authentication - php tạo mã thông báo để xác thực

Làm việc với OAuth & NBSP; và các giao thức xác thực tương tự & NBSP; yêu cầu sử dụng các mã thông báo tạm thời đại diện cho những cái bắt tay duy nhất giữa nhiều dịch vụ web. & nbsp; những mã thông báo này phải là duy nhất, được lưu trữ an toàn và càng lâu thì càng tốt.

Vì tôi đã rời khỏi trò chơi PHP trong một thời gian, tôi đã nghiên cứu cách tạo các mã thông báo như vậy mà không cần thêm thư viện. & nbsp; đoạn trích sau đây thực hiện thủ thuật:

// bin2hex(random_bytes($length))
$token = bin2hex(random_bytes(64));

/*
  Examples:

  39e9289a5b8328ecc4286da11076748716c41ec7fb94839a689f7dac5cdf5ba8bdc9a9acdc95b95245f80a00d58c9575c203ceb541507cce40dd5a96e9399f4a
  1c46538c712e9b5bf0fe43d692147004f617b494d004e29daaf33e4528f253db5d911a690856f0b77cfa98103c8231bffff869f179125d17d28e52bfadb9f205
  ...
*/

Nếu bạn không sử dụng PHP7 trở lên, bạn có thể dự phòng sau:

$token = bin2hex(openssl_random_pseudo_bytes(64));

Có sự ủng hộ của OpenSSL cho Token Generation & NBSP; mang lại sự tự tin rằng mã thông báo sẽ là duy nhất. & nbsp; Tất nhiên bạn cũng có thể thực hiện lưu trữ & nbsp; kiểm tra để đảm bảo mã thông báo không được sử dụng, nhưng nếu bạn sử dụng A & nbsp; chiều dài từ 64 hoặc lớn hơn, thì khả năng bạn lặp lại mã thông báo rất mỏng!

Hướng dẫn php generate token for authentication - php tạo mã thông báo để xác thực

Các tính năng gần đây

  • Hướng dẫn php generate token for authentication - php tạo mã thông báo để xác thực
  • Hướng dẫn php generate token for authentication - php tạo mã thông báo để xác thực

    Thiết kế cho & NBSP; Đơn giản

    Trước khi chúng tôi bắt đầu, tôi đáng để tôi dành một khoảnh khắc ngắn để giới thiệu bản thân với bạn. Tên tôi là Mark (hoặc @Integralist nếu Twitter tình cờ là công cụ giao tiếp của bạn) và tôi hiện đang làm việc cho BBC News ở London Anh với tư cách là kỹ sư/công nghệ chính ...

Mã thông báo JSON Web (JWTS) đã biến thành tiêu chuẩn de-facto để xác thực không trạng thái ứng dụng di động, ứng dụng web một trang và giao tiếp với máy. Họ hầu hết đã thay thế phương thức xác thực truyền thống (phiên phía máy chủ) vì một số lợi ích chính:

  • Chúng được phân cấp và di động (bạn có thể yêu cầu mã thông báo từ một dịch vụ chuyên dụng, sau đó sử dụng nó với nhiều phụ trợ)
  • Không cần các phiên phía máy chủ - JWT có thể chứa tất cả các thông tin cần thiết về người dùng và thông tin được bảo vệ chống lại sửa đổi
  • Họ hoạt động tốt và có thể mở rộng quy mô dễ dàng

Trước khi bạn bắt đầu làm việc với JWTS, điều quan trọng là phải hiểu rằng JWT được mã hóa và không được mã hóa - chúng không ẩn dữ liệu có bên trong và người dùng có thể đọc nó. Bạn không nên lưu trữ bất kỳ thông tin nhạy cảm bên trong JWT.

Có một số lượng lớn các thư viện được thiết kế để giúp bạn làm việc với JWT trong ứng dụng của bạn. Trong bài viết này, trước tiên tôi sẽ hướng dẫn bạn xây dựng và xác minh JWT của riêng bạn bằng gói Firebase/PHP-JWT. Sau đó, tôi sẽ chỉ cho bạn cách tạo ứng dụng máy từ máy ở OKTA và sử dụng luồng thông tin đăng nhập của máy khách để có mã thông báo truy cập JWT từ máy chủ Okta của bạn.

Các yêu cầu để hoàn thành các ví dụ là: Tài khoản OKTA (miễn phí), PHP, nhà soạn nhạc và các công cụ dòng lệnh

composer require firebase/php-jwt
0.

Tại sao okta?

Okta là một dịch vụ API cho phép bạn tạo, chỉnh sửa và lưu trữ an toàn tài khoản người dùng và dữ liệu tài khoản người dùng và kết nối chúng với một hoặc nhiều ứng dụng. Đăng ký tài khoản nhà phát triển miễn phí mãi mãi và khi bạn hoàn thành, hãy quay lại để tìm hiểu thêm về xác thực mã thông báo trong PHP.

Có các luồng xác thực khác nhau trong OKTA, tùy thuộc vào việc ứng dụng máy khách là công khai hay riêng tư và nếu có người dùng liên quan hay giao tiếp chỉ là máy từ máy. Lưu lượng thông tin đăng nhập của khách hàng mà bạn sẽ thực hiện phù hợp nhất cho giao tiếp với máy đến máy nơi ứng dụng khách là riêng tư (và có thể tin tưởng để giữ bí mật).

JWT là gì?

JWT là chuỗi được mã hóa cơ sở64. Chúng khép kín và có chữ ký mật mã, điều đó có nghĩa là nội dung của chúng có thể được kiểm tra và xác minh. JWTS có thể được ký kết bằng cách sử dụng bí mật chung (với thuật toán HMAC) hoặc cặp khóa công khai/riêng tư bằng RSA hoặc ECDSA. Nếu người dùng độc hại thay đổi nội dung mã thông báo, JWT sẽ không xác minh.

Định dạng của JWT là:

composer require firebase/php-jwt
1

Thành phần tiêu đề chứa thông tin về phương thức ký. Thành phần tải trọng là thông tin về người dùng (còn được gọi là ‘khiếu nại của JWT). Chữ ký được tính toán bởi máy chủ xác thực bằng cách sử dụng bí mật được chia sẻ hoặc khóa riêng.

Nếu bạn muốn tìm hiểu thêm về cách sử dụng JWTs một cách an toàn và cách xây dựng và xác minh chúng từ đầu trong PHP (mà không cần sử dụng bất kỳ thư viện bên ngoài nào), bạn có thể kiểm tra bài viết trước của tôi tạo và xác minh JWT trong PHP với OAuth 2.0

Sử dụng JWTS với OAuth 2.0 và OpenID Connect trong PHP

Trước khi giải thích vai trò của JWT trong OAuth 2.0 và OpenID Connect, điều quan trọng là phải làm rõ các khái niệm xác thực và ủy quyền trong bảo mật thông tin.

Xác thực có nghĩa là xác nhận rằng người dùng là người mà họ tuyên bố là. Ủy quyền có nghĩa là chứng minh rằng người dùng được xác thực có quyền làm điều gì đó trong một hệ thống.

OpenID Connect là một giao thức xác thực và OAuth 2.0 là một tiêu chuẩn mở cho ủy quyền. OpenID Connect sử dụng mã thông báo ID và OAuth 2.0 sử dụng mã thông báo truy cập. Cùng nhau, họ cung cấp một khung hoàn chỉnh để xác thực và ủy quyền cho người dùng (hoặc máy móc) trong các ứng dụng và máy chủ web/di động.

Mã thông báo OAuth 2.0 không phải là JWT, nhưng nhiều triển khai (bao gồm cả OKTA) sử dụng JWTS vì các thuộc tính mong muốn của chúng.

Các mã thông báo OpenID Connect (OIDC), luôn luôn là JWT. Okta sử dụng phương thức ký cặp khóa công khai/riêng tư. Các mã thông báo ID được ký bằng các khóa web JSON riêng (JWK), đặc điểm kỹ thuật mà bạn có thể tìm thấy ở đây: JSON Web Key (JWK). Bạn cần truy xuất các khóa này và lưu trữ chúng trên máy chủ của mình nếu bạn muốn xác minh mã thông báo Okta (cách khác, bạn có thể yêu cầu OKTA xác minh mã thông báo cho bạn, nhưng điều này đòi hỏi thêm một chuyến đi vòng đến máy chủ ủy quyền).

Mã thông báo ID OIDC bao gồm các khiếu nại chung sau đây:

  • Yêu cầu
    composer require firebase/php-jwt
    
    2 (nhà phát hành) phù hợp với định danh của máy chủ ủy quyền Okta của bạn
  • Yêu cầu
    composer require firebase/php-jwt
    
    3 (đối tượng) sẽ khớp với ID máy khách được sử dụng để yêu cầu mã thông báo ID
  • Yêu cầu
    composer require firebase/php-jwt
    
    4 (ban hành tại thời điểm) cho biết khi nào mã thông báo ID này được phát hành
  • Yêu cầu
    composer require firebase/php-jwt
    
    5 (thời gian hết hạn) là thời gian mà mã thông báo này sẽ hết hạn
  • Giá trị yêu cầu
    composer require firebase/php-jwt
    
    6 phải khớp với bất cứ điều gì đã được thông qua khi yêu cầu mã thông báo ID

Tạo và xác minh JWTS trong PHP

Bạn sẽ sử dụng gói

composer require firebase/php-jwt
7 để tạo và xác minh JWT của riêng bạn. Tôi cũng sẽ chỉ cho bạn cách sử dụng giải mã Base64 để đọc các khiếu nại của JWT và chứng minh rằng nó chỉ đơn giản là được mã hóa và không được mã hóa (nhắc nhở: Không lưu trữ bất kỳ thông tin nhạy cảm nào trong JWT).

Bắt đầu bằng cách tạo một thư mục mới và khởi tạo nó như một dự án PHP mới với sự phụ thuộc vào

composer require firebase/php-jwt
7:

composer require firebase/php-jwt

Tiếp theo, hãy tạo một cặp khóa riêng/công khai bằng cách sử dụng OpenSSL trên dòng lệnh:

openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub

Bạn sẽ sử dụng những thứ này để ký và xác minh JWTS của bạn.

Tạo tệp

composer require firebase/php-jwt
9 trong thư mục với các nội dung sau để các tệp khóa và tệp
openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub
0 của bạn sẽ không được thêm vào kho lưu trữ Git:

/vendor/
.env
mykey.pem
mykey.pub

Tạo tệp

openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub
1 để tải thư viện nhà cung cấp:


require 'vendor/autoload.php';

Tạo tệp

openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub
2:


require('./bootstrap.php');

use \Firebase\JWT\JWT;

$privateKey = file_get_contents('mykey.pem');

$token = array(
    "iss" => "http://example.org",
    "aud" => "http://example.com",
    "iat" => 1356999524,
    "nbf" => 1357000000
);

/**
 * IMPORTANT:
 * You must specify supported algorithms for your application. See
 * https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40
 * for a list of spec-compliant algorithms.
 */
$jwt = JWT::encode($token, $privateKey, 'RS256');

echo $jwt . "\n";

Mã này tạo ra một JWT và in nó ra. Nó sử dụng khóa riêng và thuật toán RS256 để ký vào nó.

Chạy mã từ dòng lệnh và bạn sẽ thấy một cái gì đó như thế này:

php jwt-generate.php
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9leGFtcGxlLm9yZyIsImF1ZCI6Imh0dHA6XC9cL2V4YW1wbGUuY29tIiwiaWF0IjoxMzU2OTk5NTI0LCJuYmYiOjEzNTcwMDAwMDB9.m_RtU0biD_xRy0DUVH7QWoNaLRqLWZadzpYO7tKnYbMlcRw8gYzZ9xI4aUJFf5BnyzKHY1LKmBdcU_-jotiJOZ0Ro_kRvcEPQRuu3OgLgQPTdyFHPrBRzGnQAAgfUdyHl1mKIJqe2bjdkiGDx8ShXnn3VZxpXzQLEDrH51IKuFI

Công cụ tiếp theo mà bạn sẽ tạo là

openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub
3 chấp nhận JWT làm đối số và trả về các khiếu nại được giải mã (mà không sử dụng bất kỳ khóa nào, hoặc thậm chí thư viện JWT):

openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub
3


require('./bootstrap.php');

// read a JWT from the command line
if (! isset($argv[1])) {
    exit('Please provide a key to verify');
}

$jwt = $argv[1];

list($header, $payload, $signature) = explode(".", $jwt);

$plainHeader = base64_decode($header);
echo "Header:\n$plainHeader\n\n"; 

$plainPayload = base64_decode($payload);
echo "Payload:\n$plainPayload\n\n";

Nếu bạn chạy nó với phím ví dụ từ bước trước, bạn sẽ thấy một đầu ra như thế này:

php jwt-decode.php eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9leGFtcGxlLm9yZyIsImF1ZCI6Imh0dHA6XC9cL2V4YW1wbGUuY29tIiwiaWF0IjoxMzU2OTk5NTI0LCJuYmYiOjEzNTcwMDAwMDB9.m_RtU0biD_xRy0DUVH7QWoNaLRqLWZadzpYO7tKnYbMlcRw8gYzZ9xI4aUJFf5BnyzKHY1LKmBdcU_-jotiJOZ0Ro_kRvcEPQRuu3OgLgQPTdyFHPrBRzGnQAAgfUdyHl1mKIJqe2bjdkiGDx8ShXnn3VZxpXzQLEDrH51IKuFI

Header:
{"typ":"JWT","alg":"RS256"}

Payload:
{"iss":"http://example.org","aud":"http://example.com","iat":1356999524,"nbf":1357000000}

Điều này chứng tỏ rằng tất cả các khiếu nại đều có thể đọc được tự do mà không cần sử dụng bất kỳ khóa nào. Các khóa được sử dụng để xác minh chữ ký (chỉ sử dụng khóa công khai), đây là công cụ cuối cùng mà bạn sẽ xây dựng:

openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub
5

openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub
5

$token = bin2hex(openssl_random_pseudo_bytes(64));
0

Một lần nữa, hãy chạy nó từ dòng lệnh với mã thông báo bạn đã tạo:

$token = bin2hex(openssl_random_pseudo_bytes(64));
1

Lưu ý rằng khi xác minh một JWT thực, bạn cũng phải đảm bảo rằng nó không hết hạn hoặc đưa vào danh sách đen. Ngoài ra, hãy đảm bảo không dựa vào thuật toán được chỉ định trong JWT, nhưng sử dụng cùng một thuật toán như thuật toán được sử dụng để ký JWT! Đây là một chủ đề quan trọng đến mức nó yêu cầu một số chi tiết bổ sung trong phân khúc tiếp theo.

Các cuộc tấn công bảo mật vào thuật toán ký JWT trong PHP

Nếu bạn nhìn kỹ vào tiêu đề JWT, bạn sẽ nhận thấy trường

openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub
7:

$token = bin2hex(openssl_random_pseudo_bytes(64));
2

Nó chỉ định thuật toán được sử dụng để ký JWT. Một thuật toán đặc biệt mà tất cả các triển khai của JWT phải hỗ trợ là thuật toán không có gì (không có chữ ký nào cả). Nếu chúng tôi sửa đổi JWT để chỉ định thuật toán này và phần phụ trợ dựa vào trường này để xác minh, thì phụ trợ có thể chấp nhận JWT của chúng tôi như đã ký chính xác ngay cả khi chúng tôi chỉ làm cho nó!

Ngoài ra còn có một loại tấn công khác khi dựa vào thuật toán được chỉ định trong JWT: nếu bạn chuyển thuật toán từ RS256 (sử dụng cặp khóa công khai/riêng tư) sang HS256 (sử dụng băm với bí mật chia sẻ) Thuật toán HS256 nhưng với khóa công khai là bí mật (gợi ý: Kiểm tra cách

openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub
8 hoạt động). Vì khóa công khai được biết đến, bạn có thể ký chính xác JWT với nó và chúng sẽ được chấp nhận.

Bạn có thể tìm hiểu thêm về các cuộc tấn công này (và khác) bằng cách đọc xác thực JWT tấn công, hoặc bằng cách xem Aaron Parecki tựa trình bày OAuth: Khi mọi thứ trở nên sai lầm.

Kết luận: Luôn sử dụng cùng một thuật toán để ký và xác minh JWT. Bỏ qua thuật toán được chỉ định trong tiêu đề JWT.

Tạo một ứng dụng bằng máy sang máy trong PHP và xác minh JWTS

Trong phần này, tôi sẽ chỉ cho bạn cách tạo ứng dụng cho máy sang máy ở OKTA và cách sử dụng thư viện

openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub
9 để có được mã thông báo truy cập JWT từ máy chủ ủy quyền Okta của bạn thông qua luồng thông tin đăng nhập của máy khách.

Luồng thông tin đăng nhập của khách hàng phù hợp nhất cho giao tiếp với máy đến máy (nơi khách hàng có thể được tin tưởng để giữ bí mật). Tại đây, tài liệu của dòng chảy: OKTA: Thông tin xác thực của khách hàng.

Nếu bạn vẫn chưa tạo ra tài khoản nhà phát triển Okta miễn phí mãi mãi, hãy thực hiện ngay bây giờ và sau đó tiếp tục với hướng dẫn.

Đăng nhập và chuyển sang các ứng dụng, sau đó nhấp vào Thêm ứng dụng:Applications, then click Add Application:

Hướng dẫn php generate token for authentication - php tạo mã thông báo để xác thực

Chọn Dịch vụ (máy sang máy) và nhấp vào Tiếp theo:Service (Machine-to-Machine) and click Next:

Hướng dẫn php generate token for authentication - php tạo mã thông báo để xác thực

Nhập một tiêu đề cho ứng dụng của bạn và nhấp xong. Hãy lưu ý các giá trị trong các trường

/vendor/
.env
mykey.pem
mykey.pub
0 và
/vendor/
.env
mykey.pem
mykey.pub
1 được hiển thị trên màn hình tiếp theo, bạn sẽ cần chúng khi xây dựng ứng dụng.Done. Take note of the values in the
/vendor/
.env
mykey.pem
mykey.pub
0 and
/vendor/
.env
mykey.pem
mykey.pub
1 fields that are displayed on the next screen, you’ll need them when building the app.

Trước khi tạo ứng dụng, có một điều nữa để định cấu hình trong OKTA: bạn cần tạo phạm vi cho ứng dụng của mình.

Truy cập API> Máy chủ ủy quyền, lưu ý trường

/vendor/
.env
mykey.pem
mykey.pub
2 (bạn sẽ cần nó khi định cấu hình ứng dụng) và nhấp vào máy chủ ủy quyền mặc định. Chuyển đến tab phạm vi và nhấp vào Thêm phạm vi. Thiết lập phạm vi của bạn như thế này:Api > Authorization Servers, take note of the
/vendor/
.env
mykey.pem
mykey.pub
2 field (you will need it when configuring the app), and click on the default authorization server. Go to the Scopes tab and click Add Scope. Set up your scope like this:

Hướng dẫn php generate token for authentication - php tạo mã thông báo để xác thực

Bạn nên sao chép 4 giá trị nếu bạn làm chính xác mọi thứ:

/vendor/
.env
mykey.pem
mykey.pub
3,
/vendor/
.env
mykey.pem
mykey.pub
4,
/vendor/
.env
mykey.pem
mykey.pub
2 và
/vendor/
.env
mykey.pem
mykey.pub
6 (
/vendor/
.env
mykey.pem
mykey.pub
7).

Sử dụng luồng thông tin đăng nhập của máy khách để tạo mã thông báo truy cập JWT trong PHP

Tôi sẽ chỉ cho bạn cách nhận mã thông báo truy cập từ máy chủ ủy quyền Okta của bạn cho ứng dụng từ máy từ máy của bạn và cách xác minh mã thông báo (nếu nhận được bởi bên thứ ba). Chúng tôi sẽ sử dụng thư viện

openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub
9.

Bắt đầu bằng cách tạo tệp

/vendor/
.env
mykey.pem
mykey.pub
9 như thế này:

$token = bin2hex(openssl_random_pseudo_bytes(64));
3

Sau đó, sao chép nó vào

openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub
0 (hãy nhớ rằng, tệp này phải có trong
composer require firebase/php-jwt
9 để nó không được thêm vào repo) và điền thông tin của bạn từ phần trước.

Bạn cần cài đặt các phụ thuộc mới. Ngoài thư viện

openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub
9, bạn cũng cần

require 'vendor/autoload.php';
3 để ứng dụng có thể đọc tệp
openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub
0 của bạn và

require 'vendor/autoload.php';
5 (được yêu cầu bởi Okta). Bạn đã có
composer require firebase/php-jwt
7 (một yêu cầu OKTA khác) từ ví dụ trước.

Chạy lệnh sau:

$token = bin2hex(openssl_random_pseudo_bytes(64));
4

Cập nhật tệp

openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub
1:

$token = bin2hex(openssl_random_pseudo_bytes(64));
5

Công cụ đầu tiên bạn xây dựng là


require 'vendor/autoload.php';
8 (được sử dụng để yêu cầu mã thông báo truy cập từ máy chủ ủy quyền Okta):


require 'vendor/autoload.php';
8

$token = bin2hex(openssl_random_pseudo_bytes(64));
6

Chạy nó từ dòng lệnh, bạn sẽ nhận được đầu ra như thế này:

$token = bin2hex(openssl_random_pseudo_bytes(64));
7

Công cụ thứ hai là


require('./bootstrap.php');

use \Firebase\JWT\JWT;

$privateKey = file_get_contents('mykey.pem');

$token = array(
    "iss" => "http://example.org",
    "aud" => "http://example.com",
    "iat" => 1356999524,
    "nbf" => 1357000000
);

/**
 * IMPORTANT:
 * You must specify supported algorithms for your application. See
 * https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40
 * for a list of spec-compliant algorithms.
 */
$jwt = JWT::encode($token, $privateKey, 'RS256');

echo $jwt . "\n";
0. Nó chấp nhận một mã thông báo truy cập từ dòng lệnh và xác minh nó.


require('./bootstrap.php');

use \Firebase\JWT\JWT;

$privateKey = file_get_contents('mykey.pem');

$token = array(
    "iss" => "http://example.org",
    "aud" => "http://example.com",
    "iat" => 1356999524,
    "nbf" => 1357000000
);

/**
 * IMPORTANT:
 * You must specify supported algorithms for your application. See
 * https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40
 * for a list of spec-compliant algorithms.
 */
$jwt = JWT::encode($token, $privateKey, 'RS256');

echo $jwt . "\n";
0

$token = bin2hex(openssl_random_pseudo_bytes(64));
8

Chạy nó với mã thông báo truy cập bạn vừa nhận được và bạn sẽ thấy đầu ra tương tự:

$token = bin2hex(openssl_random_pseudo_bytes(64));
9

Nếu mã thông báo không hợp lệ hoặc hết hạn, bạn sẽ thấy thông báo lỗi.

Đó là ý chính của thông tin xác thực của máy khách JWTS và OKTA. Mặc dù vậy, có nhiều hơn nữa để tìm hiểu về các chủ đề này, hãy kiểm tra các tài nguyên trong phần tiếp theo để tìm một số liên kết hữu ích để khám phá thêm.

Tìm hiểu thêm về JWTS trong Php, OAuth 2.0 và OpenID Connect

Bạn có thể tìm thấy toàn bộ ví dụ mã ở đây: Liên kết GitHub

Nếu bạn muốn đào sâu hơn vào các chủ đề được đề cập trong bài viết này, các tài nguyên sau đây là một điểm khởi đầu tuyệt vời:

  • Tạo và xác minh JWTS trong PHP với OAuth 2.0
  • Thêm xác thực vào ứng dụng PHP của bạn trong 5 phút
  • Xây dựng đăng nhập đơn giản trong PHP

Giống như những gì bạn đã học được hôm nay? Theo dõi chúng tôi trên Twitter và đăng ký kênh YouTube của chúng tôi để có nội dung tuyệt vời hơn!

Làm cách nào để nhận mã thông báo ủy quyền trong PHP?

Để gửi yêu cầu GET với tiêu đề ủy quyền mã thông báo của người mang bằng PHP, bạn cần thực hiện yêu cầu GET HTTP và cung cấp mã thông báo cho người mang của bạn với sự ủy quyền: Bearer {token} Tiêu đề HTTP.make an HTTP GET request and provide your Bearer Token with the Authorization: Bearer {token} HTTP header.

Làm cách nào để tạo xác thực mã thông báo?

Để tạo mã thông báo auth mới:..
Ở góc trên bên phải của bảng điều khiển, hãy mở menu hồ sơ (....
Trên trang mã thông báo Auth, nhấp vào Tạo mã thông báo ..
Nhập một mô tả thân thiện cho mã thông báo auth.....
Nhấp vào Tạo mã thông báo ..

Làm thế nào để tôi tạo ra mã thông báo của người mang?

Tạo mã thông báo người mang OAuth..
Mở một tab mới trong ứng dụng Postman ..
Đối với phương thức HTTP, chọn Bài đăng ..
Nhấp vào tab ủy quyền và chọn OAuth 2.0 làm loại ..
Nhấp vào Nhận mã thông báo truy cập mới.....
Để xác minh rằng mã thông báo của người mang đã được thêm vào, nhấp vào tab Tiêu đề và nhấp vào các tiêu đề ẩn ..

JWT PHP là gì?

JSON Web Token (JWT) là một cách an toàn để xác thực người dùng trên một ứng dụng web.Sử dụng JWT, bạn có thể chuyển một cách an toàn dữ liệu và thông tin được mã hóa giữa máy khách và máy chủ.Tìm hiểu thêm về sự khác biệt giữa các phiên và JWT ở đây.JWT cung cấp nhiều lợi ích.a safe way to authenticate users on a web app. Using JWT, you can securely transfer encrypted data and information between a client computer and a server. Learn more about the differences between sessions and JWTs here. JWT offers many benefits.