フロントエンドとバックエンドを分離するか、複数の Web アプリケーションをサポートするために、元の Cookie またはセッションを使用すると大きな問題が発生します
Cookie とセッション認証は同じプライマリの下にある必要がありますドメイン名認証を実行できます(現在、解決のためにセッションをredisに保存できます)。
#ソリューション##oauth2 と jwt (推奨学習:
PHP ビデオ チュートリアル 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 サイトの他の関連記事を参照してください。