1

パスワードを知らなくても、どのようにしてユーザーに自動的にログインしますか?データベースからユーザーに関する情報(ユーザー名、ID、電子メールなど)を取得できますが、パスワードはデータベース内のハッシュバージョンになるため、パスワードがクリアテキストバージョンではないため、Auth :: login()は失敗します。 。

何か案は?これは以前に行われたに違いありませんが、何も見つかりません。

私の知る限り、Cake 1.3はユーザーIDのみを提供することを許可し、ログインしていましたが、Cake 2.xはそれをサポートしなくなったので、これはどのように行われますか?

4

3 に答える 3

2

私のQloginsを見てください: http ://www.dereuromark.de/2012/02/08/qlogin-quicklogins-fur-cakephp/

特に https://github.com/dereuromark/tools/blob/2.0/Controller/QloginController.php#L57

そこで、提供されたキーに基づいてそれを行います。しかし、user_idなどを知っているだけで、誰かを自動的にログインさせる方法を簡単に確認できます。

if ($this->Auth->login($user['User'])) {}

秘訣は、ユーザーデータをメソッドに渡すことです。

于 2012-06-06T13:22:45.110 に答える
0

Cakeがユーザーが「ログイン」しているかどうかを判断するために使用するのは、セッションをチェックすることだけです。したがって、セッションにデータを入力するだけです。

$user = $this->User->read(null, 1);
$this->Session->write('Auth', $user);
debug($this->Auth->loggedIn());

これは、認証プロセスをスキップし、それらを識別しようとすることさえスキップします。しかし、アプリに関する限り、彼らはセッションに参加しています。彼らはログインしています。

于 2012-06-06T14:36:25.167 に答える
0

Auth :: Identification()を参照してください:構成された認証アダプターを使用し、$requestに含まれている資格情報によってユーザーを識別しようとします。

真のリダイレクトを返すか、好きなことをしてください。

于 2012-06-06T13:01:18.900 に答える