ホームページ  >  記事  >  バックエンド開発  >  フロントエンドとバックエンドのログインを処理する新しいメソッドを Yii に実装する、yii new Method_PHP チュートリアル

フロントエンドとバックエンドのログインを処理する新しいメソッドを Yii に実装する、yii new Method_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-12 09:02:20685ブラウズ

Yii でフロントログインとバックログインを処理する新しいメソッド、yii の新しいメソッド

この記事では、Yii でフロントログインとバックログインを処理する新しいメソッドについて説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

現在、フロントとバックのログイン問題を伴うプロジェクトに取り組んでいるため、バックエンドをモジュールとして処理します。多くの人が 2 つのエントリ ファイル、index.php と admin.php を配置し、それぞれフロントエンドとバックエンドを指定しているのを見かけます。この方法はフロントエンドとバックエンドを完全に分離できるので非常に優れていますが、この方法は少し現実離れしているといつも感じます。この方法と 2 つのアプリケーションの違いは何でしょうか。 1 つのフレームワークを使用して 2 つのアプリを作成する方が良いでしょう。また、Yii 公式のバックグラウンド使用方法も Module を使用することです。しかし、Moudle の方法には非常に厄介な問題があり、Cwebuser でログインするとフロントとバックエンドが同時にログイン、ログアウトしてしまい、明らかに無理があります。もちろん、以下で紹介する方法を見つけるまでには長い時間がかかりましたが、他の人の方法をベースにしており、少し変更しました。私の最初のアプローチは、バックグラウンドでログインするときに isadmin セッションをセットアップし、フロント デスクにログインするときにセッションからログアウトすることでした。これでは、フロント デスク ログインかバックグラウンド ログインかしかわかりませんでした。フロントとバックエンドの両方にログインできませんでした。つまり、バックグラウンドでログインした後にログアウトし、フロントデスクにログインした後にログアウトしました。この問題の根本的な原因は、同じ Cwebuser インスタンスを使用しており、フロントエンドとバックエンドのセッションを同時にセットアップできないことです。この問題を解決するには、フロントとバックエンドにログインするために異なる Cwebuser インスタンスを使用する必要があります。以下は私のアプローチです。まず、protected->config->main.php:

のフロントエンド ユーザー (Cwebuser) の構成を確認します。 リーリー

Gii を使用して admin (バックエンド モジュール名) モジュールを生成すると、module->admin の下に AdminModule.php ファイルが生成されます。このクラスは CWebModule クラスを継承します。このファイルのコードは次のとおりです。このドキュメントに記載されていますので、注意深く読んでいただければ幸いです:

リーリー

AdminModule の init() メソッドは、バックエンドに別のログイン インスタンスを設定し、フロントエンドとバックエンドで異なる CWebUser を使用させ、フロントエンド セッションと区別するためにバックエンド セッション プレフィックスを設定します (これらは $_SESSION 配列に保存されます)。印刷してご覧ください)。

このようにフロントエンドとバックエンドのログインが分離されましたが、この時点でログアウトするとフロントエンドとバックエンドが一緒にログアウトしたことになります。そこで、logout() メソッドを見つけたところ、パラメータ $destroySession=true があることがわかりました。logout() だけを実行すると、false パラメータを追加すると、すべてのセッションがログアウトされることがわかりました。セッションはログアウトされます。そのため、セッションをログアウトするために false パラメーターを指定した logout メソッドがどのように設定されるかを見てみましょう。 リーリー

ログアウトするために一致するプレフィックスを使用していることがわかりましたか?

この時点で、フロントエンドとバックエンドのログインとログアウトを分離できます。これにより、よりアプリケーションらしくなりますね。ふふ…

説明するのをほとんど忘れていました:

リーリー

理解できない場合は、フロントエンドとバックエンドの CWebUser の構成を詳しく見てください。

添付ファイル 1: WebUser.php コード: リーリー

添付 2: AdminWebUser.php コード リーリー

添付 3: フロントエンド UserIdentity.php コード リーリー

添付 4: バックエンド UserIdentity.php コード リーリー

この記事が、Yii フレームワークに基づいた PHP プログラムの設計に役立つことを願っています。

興味がありそうな記事:

    yii ユーザー登録フォームの検証例
  • PHP Yii Framework の包括的なフォーム検証ルール
  • Yii Framework のフォーム使用例
  • モデルに依存しない Yii Form Builder の使用例
  • yiiフレームワークのフォームモデルを使用し、フォームデータを配列形式で送信する例
  • Yii の Captcha 検証コードを使用する方法
  • yii の必須フィールドのアスタリスクを削除する方法

http://www.bkjia.com/PHPjc/1085882.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/1085882.html技術記事フロントログインとバックログインを処理する新しいメソッドが Yii に実装されました。 yii の新しいメソッドは、Yii でフロントログインとバックログインを処理する新しいメソッドを実装する方法の例です。参考のために皆さんと共有してください。詳細は次のとおりです: なぜなら...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。