yii で新しいユーザー認証を追加する方法
この記事は、Yii に新しいユーザー認証を追加する方法の詳細な分析と紹介です。必要な方は参照してください。
1 なぜ追加する必要があるのか。新しいユーザーですか? 検証:
Web サイトのバックエンドとフロントエンドを同じ Yii アプリケーション内に構築したいためです。ただし、フロントエンドにはメンバー管理センターも含まれており、2 つのユーザー検証はまったく異なります。 2 つの異なるログイン ページが必要であり、ユーザー情報は異なる Cookie またはセッションに保存する必要があるため、ユーザー認証をアプリケーションに追加する必要があります
2.yii ユーザー認証:
#。 ##ユーザー検証をカスタマイズする前に、まず yii の検証および認可メソッドを理解する必要があります。ユーザーを検証するには、検証ロジックを備えた検証クラスを定義する必要があります。 yii IUserIdentity インターフェースでは、異なるクラスが異なる検証メソッドを実装できます。通常、Yii はユーザー名とパスワードを検証するために使用される CUserIdentity クラスを、継承後に書き換える必要があります。 Authenticate() メソッドを使用して独自の
検証メソッドを実装します。具体的なコードは次のとおりです。
Php code
class UserIdentity extends CUserIdentity { private $_id; public function authenticate() { $record=User::model()->findByAttributes(array('username'=>$this->username)); if($record===null) $this->errorCode=self::ERROR_USERNAME_INVALID; else if($record->password!==md5($this->password)) $this->errorCode=self::ERROR_PASSWORD_INVALID; else { $this->_id=$record->id; $this->setState('title', $record->title); $this->errorCode=self::ERROR_NONE; } return !$this->errorCode; } public function getId() { return $this->_id; } }
ユーザーがログインすると、次のコードが呼び出されます。 :
// 使用提供的用户名和密码登录用户 $identity=new UserIdentity($username,$password); if($identity->authenticate()) Yii::app()->user->login($identity); else echo $identity->errorMessage;
ユーザーが終了すると、次のコードが呼び出されます:
Php コード
// 注销当前用户 Yii::app()->user->logout(); 其中的user是yii的一个components.需要在protected/config/main.php中定义
'user'=>array( // enable cookie-based authentication 'allowAutoLogin'=>true, 'loginUrl' => array('site/login'), ),
Php コード
class AdminDefaultController extends CController { public function filters() { return array('accessControl'); } public function accessRules() { return array( array( 'allow', 'users' => array('@'), ), array( 'deny', 'users' => array('*') ), ); } }
filters メソッドで特定のフィルターを設定すると、filters メソッドによって返される配列に accessControl パラメーターがあることがわかります。は、CController クラスの filterAccessControl メソッドです。
Php コードpublic function filterAccessControl($filterChain)
{
$filter=new CAccessControlFilter;
$filter->setRules($this->accessRules());
$filter->filter($filterChain);
}
内部に新しい CAccessControlFilter インスタンスを作成し、setRules.$ のときに accessRules() メソッドによって返されるパラメータを渡します。 filter->filter($filterChain) その後、他のフィルターの呼び出しを続けます。
そして、すべての特定の承認ルールは、accessRules:
Php codepublic function accessRules()
{
return array(
array('deny',
'actions'=>array('create', 'edit'),
'users'=>array('?'),
),
array('allow',
'actions'=>array('delete'),
'roles'=>array('admin'),
),
array('deny',
'actions'=>array('delete'),
'users'=>array('*'),
),
);
}
で定義されます。特定のルールについては、yii マニュアルを参照してください。
3. 新しい検証システムを追加します:
最初に、CWebUser:
Php コードから CAdminUser を継承します。 class CAdminWebUser extends CWebUser
{
public $loginUrl = array('admin/admin/login');
}
これはコンポーネントに配置されます
Php コードのコンポーネント セクションを渡します'user'=>array(
// enable cookie-based authentication
'class' => 'CAdminUser',
'allowAutoLogin'=>true,
'loginUrl' => array('site/login'),
),
モジュール内にある場合は、モジュール クラスの init メソッドに次のコードを追加します。
Php コード$this->setComponents(array(
'adminUser' => array(
'class' => 'CAdminWebUser',
'allowAutoLogin' => false,
)
));
最終呼び出しメソッド
Php コード//全局应用
Yii::app()->getComponent('adminUser');
//在模块中
Yii::app()->controller->module->getComponent('adminUser');
しかし、これだけでは不十分です。別のユーザーの検証と承認を実装するには、コントローラーのフィルターも変更する必要があります。 #最初のステップはフィルターをカスタマイズすることです:
class CAdminAccessControlFilter extends CAccessControlFilter { protected function preFilter($filterChain) { $app=Yii::app(); $request=$app->getRequest(); $user = Yii::app()->controller->module->getComponent('adminUser'); $verb=$request->getRequestType(); $ip=$request->getUserHostAddress(); foreach($this->getRules() as $rule) { if(($allow=$rule->isUserAllowed($user,$filterChain->controller,$filterChain->action,$ip,$verb))>0) // allowed break; else if($allow<0) // denied { $this->accessDenied($user); return false; } } return true; } }
CController クラスの filterAccessController メソッドを書き直します
Php コード
public function filterAccessControl($filterChain) { $filter = new CAdminAccessControlFilter(); $filter->setRules($this->accessRules()); $filter->filter($filterChain); } //在这里我们使用自定义的filter类替换了原来的filter
OK、このコントローラーの accessRules() で adminUser の承認を指定できます。
上記はこの記事の全内容です。その他の関連コンテンツについては、この記事が役立つことを願っています。 、PHP 中国語 Web サイトに注意してください。
関連する推奨事項:
PHP の Yii フレームワークでのログイン機能の実装について
yii2 の変更方法.0 ユーザー ログインに使用されるユーザー テーブルは別のテーブルです
以上がyii で新しいユーザー認証を追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









クラウド コンピューティング テクノロジの継続的な発展により、データのバックアップはすべての企業が行う必要のあるものになりました。この文脈では、可用性の高いクラウド バックアップ システムを開発することが特に重要です。 PHP フレームワーク Yii は、開発者が高性能の Web アプリケーションを迅速に構築できる強力なフレームワークです。ここでは、Yii フレームワークを使用して可用性の高いクラウド バックアップ システムを開発する方法を紹介します。データベースモデルの設計 Yii フレームワークでは、データベースモデルは非常に重要な部分です。データ バックアップ システムには多くのテーブルとリレーションシップが必要なため、

Web アプリケーションの需要が高まるにつれ、開発者が開発フレームワークを選択する選択肢はますます増えています。 PHP フレームワークとして人気のある Symfony と Yii2 は、どちらも強力な機能とパフォーマンスを備えていますが、大規模な Web アプリケーションを開発する必要がある場合、どちらのフレームワークがより適しているのでしょうか。次に、より良い選択を行うために、Symphony と Yii2 の比較分析を行います。基本概要 Symphony は、PHP で書かれたオープンソースの Web アプリケーション フレームワークであり、上に構築されています。

Yii フレームワークは、Web アプリケーション開発のプロセスを簡素化するための多数のツールとコンポーネントを提供するオープンソースの PHP Web アプリケーション フレームワークであり、その重要なコンポーネントの 1 つがデータ クエリです。 Yii フレームワークでは、SQL に似た構文を使用してデータベースにアクセスし、データを効率的にクエリおよび操作できます。 Yii フレームワークのクエリビルダーには主に次の種類があります: ActiveRecord クエリ、QueryBuilder クエリ、コマンド クエリ、独自の SQL クエリ

インターネットの発展に伴い、Web アプリケーション開発の需要もますます高まっています。開発者にとって、アプリケーションの開発には、開発効率を向上させる、安定性、効率性、強力なフレームワークが必要です。 Yii は、豊富な機能と優れたパフォーマンスを提供する、優れた高性能 PHP フレームワークです。 Yii3 は Yii フレームワークの次世代バージョンであり、Yii2 に基づいてパフォーマンスとコード品質をさらに最適化します。この記事では、Yii3 フレームワークを使用して PHP アプリケーションを開発する方法を紹介します。

win11システムでは、システムに入るたびにログインする必要がありますが、システム内にアカウントが1つしかない場合、またはアカウントを保護する必要がない場合は、毎回ログインする必要はありません。では、パスワードを解除することでログインアカウントを解除することができますので、以下で具体的な方法を見ていきましょう。 win11でログインアカウントをキャンセルする方法 1. まず、タスクバーの中央にある矢印ボタンをクリックし、すぐに「開始」オプションを選択します。 2. 次に、システム設定インターフェイスに入り、[実行]オプションをすぐにクリックして開始します。 3. 次に、コマンド controluserpasswords2 を入力し、Enter キーを押します。 4. [ユーザー アカウントのプロパティ] オプションをクリックして開き、[このマシンを使用するには、ユーザーは

現在の情報化時代では、ビッグデータ、人工知能、クラウド コンピューティング、その他のテクノロジーが大手企業の焦点となっています。その中でも、高性能なグラフィックス処理技術として、グラフィックスカードレンダリング技術がますます注目を集めています。グラフィックス カード レンダリング テクノロジは、ゲーム開発、映画やテレビの特殊効果、エンジニアリング モデリングなどの分野で広く使用されています。開発者にとって、自分のプロジェクトに合ったフレームワークを選択することは非常に重要な決定です。現在の言語の中でも PHP は非常に動的な言語であり、Yii2、Ph などの優れた PHP フレームワークもいくつかあります。

コンピューターのプライバシーを設定したい場合、コンピューターのパワーオン パスワードを設定することができ、設定で行うだけで非常に便利ですので、見てみましょう。 win11 でパワーオン パスワードを設定する方法: 1. まず、[スタート] メニューを右クリックし、[設定] をクリックします。 2. 次に「アカウント」をクリックします。 3. 次に、「ログイン オプション」をクリックします。 4. 次に、「パスワード」を見つけて「追加」をクリックします。 5. 最後に、正常に追加できます。

PHP でユーザー入力の検証とセキュリティ フィルタリングを実行するにはどうすればよいですか? Web アプリケーションを開発する場合、ユーザー入力の検証とセキュリティ フィルタリングは非常に重要な側面です。ユーザー入力が正しく処理されないと、クロスサイト スクリプティング (XSS) や SQL インジェクション攻撃など、さまざまなセキュリティ上の脆弱性が発生する可能性があります。したがって、ユーザー入力の検証とセキュリティ フィルタリングは、Web アプリケーションを保護するための重要な手段の 1 つです。この記事では、PHP でユーザー入力の検証とセキュリティ フィルタリングを実行する方法を紹介します。データ型の検証 ユーザー入力を受け取る前に、まずデータ型を検証する必要があります
