ホームページ >バックエンド開発 >PHPの問題 >PHPトークンの生成方法

PHPトークンの生成方法

(*-*)浩
(*-*)浩オリジナル
2019-10-12 14:13:326370ブラウズ

フロントエンドとバックエンドを分離するか、複数の Web アプリケーションをサポートするために、元の Cookie またはセッションを使用すると大きな問題が発生します

Cookie とセッション認証は同じプライマリの下にある必要がありますドメイン名認証を実行できます(現在、解決のためにセッションをredisに保存できます)。

PHPトークンの生成方法

#ソリューション##oauth2 と jwt (推奨学習:

PHP ビデオ チュートリアル

)# jwt: セキュリティ標準です。基本的な考え方は、ユーザーが認証サーバーにユーザー名とパスワードを提供し、サーバーがユーザーが送信した情報の正当性を検証し、検証が成功するとトークン (トークン) が生成されて返されるというものです

OAuth2: 安全な認証フレームワークです。システム内のさまざまなロール、ユーザー、サービス フロントエンド アプリケーション (API など)、クライアント (Web サイトやモバイル APP など) の間で相互認証を実現する方法について詳しく説明します。 (JWT、この JSON Web トークンはここで認証に使用されます)

生成方法

ヘッダー: 暗号化の種類

説明: メッセージの内容

key: 暗号化に使用するランダムなコード

上記の3つの部分を使用して接続し、hs256を使用して暗号化してトークンを生成します

詳細な生成方法

1). ヘッダーは通常、トークンのタイプ (つまり、JWT) と使用される暗号化アルゴリズム (SHA256 や RSA など) の 2 つの部分で構成されます。 Base64Url でエンコードされ、最初の部分になります

2) ペイロードは宣言です。宣言はエンティティに関するものです。

{
      "alg": "HS256",
      "typ": "JWT"
}

ペイロードは Base64Url でエンコードされ、2 番目の部分になります

(追記: この情報は改ざんから保護されていますが、誰でも読み取ることができます。暗号化されていない限り、重要な情報を中に入れないでください)

3). 暗号化キーを使用する

4). 署名するには、最初のエンコードされた部分、2 番目のエンコードされた部分、そしてキー キーを使用する必要があります。最初の部分の暗号化アルゴリズムを使用して署名します。

{
      "exp": "1525785339",
      "sub": "1234567890",
      "name": "John Doe",
      "admin": true
}

この署名は、メッセージが改ざんされているかどうかを確認するために使用されます。

(PHP は暗号化に crypt メソッドを使用します。注: SHA-256 は改ざん防止に使用され、AES-256 は暗号化に使用されます。2 つの概念は異なります)

以上がPHPトークンの生成方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。