ホームページ バックエンド開発 PHPチュートリアル PHP 開発における ID 認証と認可を解決する方法

PHP 開発における ID 認証と認可を解決する方法

Oct 08, 2023 pm 01:15 PM
PHP開発 認証 承認する

PHP 開発における ID 認証と認可を解決する方法

PHP 開発で ID 認証と認可を解決する方法、具体的なコード例が必要です

ID 認証と認可は、Web 開発の非常に重要な部分です。特に、ユーザーのログインやアクセス権の管理などのシナリオで使用されます。この記事では、PHP 開発における ID 認証と認可を解決する方法を紹介し、具体的なコード例を示します。

1. ID 認証

ID 認証とは、ユーザーの ID が合法であるかどうかを検証することを指します。一般的に使用される ID 認証方法には、フォームベースのユーザー名とパスワードの認証、トークンベースの認証などが含まれます。これら 2 つのメソッドの実装を以下に紹介します。

1.1 フォームベースのユーザー名とパスワードの認証

フォームベースのユーザー名とパスワードの認証は、Web アプリケーションで最も一般的な認証方法の 1 つです。以下は、ユーザー名とパスワードに基づく認証の例です。

コード例:

// 登录页面
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $username = $_POST['username'];
    $password = $_POST['password'];

    // 验证用户名和密码是否正确
    if (validUsernameAndPassword($username, $password)) {
        // 认证通过,设置用户登录状态
        $_SESSION['username'] = $username;
        $_SESSION['is_logged_in'] = true;

        // 跳转到首页或其他访问权限需要的页面
        header('Location: home.php');
        exit;
    } else {
        // 认证失败,返回登录页面并显示错误消息
        $error = '用户名或密码错误';
    }
}

// 登录页面模板
<form action="login.php" method="POST">
    <input type="text" name="username" placeholder="用户名" required> <br>
    <input type="password" name="password" placeholder="密码" required> <br>
    <input type="submit" value="登录">
</form>
ログイン後にコピー

コード例では、ログイン ページが POST メソッドを通じてユーザー名とパスワードを送信し、ユーザー名とパスワードを送信します。パスワードが正しいかどうかはバックグラウンドで検証されます。認証が成功した場合は、ユーザーのログイン ステータスを設定し、アクセス権限に必要なホームページまたはその他のページにジャンプします。認証が失敗した場合は、ログイン ページに戻り、エラー メッセージが表示されます。

1.2 トークンベースの認証

トークンベースの認証は、もう 1 つの一般的な ID 認証方法です。この方法では、トークンを発行することにより、ユーザーは一定期間ユーザー名とパスワードの再入力を回避でき、ユーザー エクスペリエンスが向上します。以下は、JWT (JSON Web Token) に基づく認証の例です。

コード例:

// 登录页面
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $username = $_POST['username'];
    $password = $_POST['password'];

    // 验证用户名和密码是否正确
    if (validUsernameAndPassword($username, $password)) {
        // 认证通过,生成JWT并返回给客户端
        $token = generateJWT($username);

        // 将JWT存储在Cookie中或返回给客户端
        setcookie('token', $token, time() + 3600, '/');

        // 跳转到首页或其他访问权限需要的页面
        header('Location: home.php');
        exit;
    } else {
        // 认证失败,返回登录页面并显示错误消息
        $error = '用户名或密码错误';
    }
}

// 验证JWT并获取用户信息
function verifyJWT($token) {
    // 解码JWT并验证签名
    $decoded = JWT::decode($token, 'secret_key', array('HS256'));

    // 返回用户信息
    return $decoded->sub;
}

// 首页
if ($_SESSION['is_logged_in']) {
    // 从Cookie或其他方式获取JWT
    $token = $_COOKIE['token'];

    // 验证JWT并获取用户信息
    $user = verifyJWT($token);

    // 显示用户信息
    echo '欢迎,' . $user->username;
}
ログイン後にコピー

コード例では、ログイン ページは POST メソッドを通じてユーザー名とパスワードを送信し、バックグラウンドでユーザーを認証します。名前とパスワードは正しいですか?認証が成功すると、JWT (JSON Web Token) が生成されてクライアントに返され、クライアントは JWT を Cookie などのメソッドに保存できます。ホームページでは、サーバーがCookieなどからJWTを取得し、JWTを検証してユーザー情報を取得し、ユーザー情報を表示します。

2. 認可

認可とは、ユーザーの ID に基づくアクセス制御と、ID 認証に基づくアクセス許可を指します。一般的に使用される承認方法には、ロールベースの承認、権限ベースの承認などが含まれます。以下は、ロールベースの承認の例です。

コード例:

// 用户角色定义(通常存储在数据库中)
$roles = [
    'admin' => ['home', 'dashboard', 'users'],
    'editor' => ['home', 'dashboard', 'articles'],
    'contributor' => ['home', 'dashboard'],
];

// 用户当前角色(通常从数据库或其他方式获取)
$currentRole = $_SESSION['role'];

// 需要授权的页面
$requiredRole = 'admin';

// 验证用户是否拥有访问权限
if (in_array($requiredRole, $roles[$currentRole])) {
    // 允许访问
} else {
    // 禁止访问,跳转到登录或其他页面
    header('Location: login.php');
    exit;
}
ログイン後にコピー

コード例では、ユーザー ロールは、さまざまなロールがアクセスできるページを定義しており、ユーザーの現在のロールは次のとおりです。データベースまたはその他の手段から取得され、承認が必要なページは、アクセスに必要なロールを定義します。認証が必要なページにアクセスした場合は、ユーザーにアクセス権があるか確認し、アクセスが許可されている場合はそのまま操作を続行し、アクセスが禁止されている場合はログインページなどにジャンプします。

要約すると、この記事では、PHP 開発における ID 認証と認可を解決する方法を紹介し、具体的なコード例を示します。開発者は、実際のニーズに基づいて適切な ID 認証および認可方法を選択し、サンプル コードに基づいて実装できます。合理的な ID 認証と認可を通じて、Web アプリケーションのセキュリティと信頼性を確保できます。

以上がPHP 開発における ID 認証と認可を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

win10エンタープライズ版2016長期サービス版をプロフェッショナル版にアップグレードする方法 win10エンタープライズ版2016長期サービス版をプロフェッショナル版にアップグレードする方法 Jan 03, 2024 pm 11:26 PM

現在のWin10 Enterprise Edition 2016 長期サービス版を継続利用したくない場合は、一部の内容を変更してシステムイメージをインストールするだけで、Professional Editionに切り替えることができます。 win10 エンタープライズ バージョン 2016 長期サービス バージョンをプロフェッショナル バージョンに変更する方法 1. win + R キーを押し、「regedit」と入力します。 2. 次のパスを上のアドレス バーに直接貼り付けます: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT \CurrentVersion3 に移動し、EditionID を見つけて内容を「professional」に置き換えて確認します。

PHP開発でMemcacheを使用するにはどうすればよいですか? PHP開発でMemcacheを使用するにはどうすればよいですか? Nov 07, 2023 pm 12:49 PM

Web 開発では、Web サイトのパフォーマンスと応答速度を向上させるためにキャッシュ テクノロジを使用する必要があることがよくあります。 Memcache は、あらゆる種類のデータをキャッシュでき、高い同時実行性と高可用性をサポートする一般的なキャッシュ テクノロジです。この記事では、PHP 開発で Memcache を使用する方法を紹介し、具体的なコード例を示します。 1. Memcache のインストール Memcache を使用するには、まずサーバーに Memcache 拡張機能をインストールする必要があります。 CentOS オペレーティング システムでは、次のコマンドを使用できます。

Douyin スライスと商品の認可を取得するにはどうすればよいですか?抖音スライスは簡単に作れますか? Douyin スライスと商品の認可を取得するにはどうすればよいですか?抖音スライスは簡単に作れますか? Mar 07, 2024 pm 10:52 PM

Douyin は現在人気のソーシャル メディア プラットフォームとして、人々に豊富なエンターテイメント コンテンツを提供するだけでなく、多くのブランドや販売者にとって製品を宣伝し、販売を達成するための重要なチャネルとなっています。その中でも、Douyinの商品をスライスして販売することは、斬新で効率的なマーケティング手法となっています。では、Douyin のスライス製品の認可はどうやって取得しますか? 1. Douyin のスライス製品はどうやって認可を取得しますか? Douyin のスライス製品は、長いビデオを短いビデオ クリップに分解し、そこに製品のプロモーション情報を埋め込んで視聴者を引き付けます。買う。 。 Douyin で商品をスライスして販売する場合、最初のステップは元のビデオから許可を取得することです。適切なライセンサーを探す場合は、Douyin プラットフォーム、ソーシャル メディア、業界フォーラムなどのさまざまなチャネルの利用を検討できます。人気の動画コンテンツのクリエイターや著作権者を見つけて積極的につながり、

WPS 認証が期限切れになり、テキストを入力できない場合はどうすればよいですか? WPS 認証が期限切れになり、テキストを入力できない場合はどうすればよいですか? Mar 20, 2024 am 09:00 AM

正規のソフトウェアの中には、自社の知的財産権を保護するために、ソフトウェアを使用する前に何らかの認可を取得し、開発者から許可を得る必要があるものが多くあります。一部のソフトウェアには試用期間が設けられており、その期間を過ぎると、正常に使用できるようにするために再認証を取得する必要があります。 wps が認証の有効期限が切れていることを示すプロンプトを表示した場合、いかなる操作も実行できません。この問題を解決する方法については、以下の説明を見てみましょう。 1. 下の図に示すように、WPS テキスト プログラムを開き、上の図の赤いボックスをクリックしました。 2. 「構成および修復ツール」をクリックします。 3. 以下の図に示すように、「詳細」を選択します。 4. 次の図に示すように、製品管理センターをクリックし、「期限切れ」プロンプトの内容を削除します。 5. 「追加」をクリックした後、下図に示すようにシリアル番号を入力します。 6. それではまず

確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 Apr 03, 2025 am 12:04 AM

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

PHP 開発でバージョン管理とコードコラボレーションを実装するにはどうすればよいですか? PHP 開発でバージョン管理とコードコラボレーションを実装するにはどうすればよいですか? Nov 02, 2023 pm 01:35 PM

PHP 開発でバージョン管理とコードコラボレーションを実装するにはどうすればよいですか?インターネットとソフトウェア産業の急速な発展に伴い、ソフトウェア開発におけるバージョン管理とコードのコラボレーションがますます重要になってきています。独立した開発者であっても、チーム開発者であっても、コードの変更を管理し、共同作業を行うためには効果的なバージョン管理システムが必要です。 PHP 開発では、Git や SVN など、一般的に使用されるバージョン管理システムがいくつかあります。この記事では、PHP 開発におけるバージョン管理とコード共同作業にこれらのツールを使用する方法を紹介します。最初のステップは自分に合ったものを選ぶことです

WeChat で ID 認証のバインドを解除する方法 WeChat で ID 認証のバインドを解除する方法 Mar 26, 2024 pm 04:22 PM

1. まず、WeChatには本人認証を直接解除する機能はありませんが、WeChat Payからログアウトすることで実名認証を解除することができ、解除後も通常通りチャットすることが可能です。 2. WeChat アプリを開き、右下隅の [Me] をクリックし、[サービス] オプションを選択します。 3. [ウォレット] をクリックし、[支払い設定] オプションを見つけてクリックし、[WeChat 支払いからログアウト] を選択します。 4. ユーザーが WeChat Pay からログアウトするための条件を満たした場合、システムのプロンプトに従ってログアウトできます。

PHPを使って発注システムのクーポン機能を開発するにはどうすればよいですか? PHPを使って発注システムのクーポン機能を開発するにはどうすればよいですか? Nov 01, 2023 pm 04:41 PM

PHPを使って発注システムのクーポン機能を開発するにはどうすればよいですか?現代社会の急速な発展に伴い、人々の生活ペースはますます速くなり、外食を選択する人が増えています。発注システムの登場により、顧客の発注業務の効率性と利便性が大幅に向上しました。クーポン機能は、集客のためのマーケティングツールとして、さまざまな注文システムでも広く活用されています。では、PHP を使用して注文システムのクーポン機能を開発するにはどうすればよいでしょうか? 1. データベースの設計 まず、クーポン関連のデータを格納するデータベースを設計する必要があります。 2 つのテーブルを作成することをお勧めします。

See all articles