2012-04-06 8 views
10

wp user_IDのみでWordpressユーザーをログする方法はありますか?user_idのみを使用してWordpressにユーザーをログインする方法

何かを確認するためにユーザーのメールを送信しています。特定のリンクをクリックしてウェブサイトにアクセスしたときに、そのページを表示するためにログインする必要があるため、ユーザーをログする必要がありますヘッダーのリダイレクトを行います。

私はあなたにも私に(もしあれば)、私はそれを実装することができますどのようにように余分な詳細を与えることができ、私はPHPで使用することができます1、ワードプレスが提供するPHPの関数が必要

+0

大丈夫参照してください、私はワードプレスのnoobですが、私のセキュリティはそれほど悪くはありません。 突破するのが簡単だと思っている人は、これが私が生成しているリンクです。 http://testsite.dom/index.php?page_name = confirm-registration&key = U3VuZGF5IDggQXByIDE1OjQ1OjQ2OjEzMg、 さらに詳しい情報:各リンクは一意で、リンクをクリックしてユーザーがログインすると、キーは期限切れになります。 – pythonian29033

+0

あなた自身の質問にちょうど答えました:-)。うわー –

+0

私はphpコード/関数は、IDを使用してユーザーをログにするように求めていたが、私はどのように私は変数を渡す必要があります、なぜあなたの答えは問題に役立つものではありません。 – pythonian29033

答えて

33

機能をユーザにログインするためのハッシュを構築する方が良い:

function auto_login() { 
    if (!is_user_logged_in()) { 
     //determine WordPress user account to impersonate 
     $user_login = 'guest'; 

     //get user's ID 
     $user = get_userdatabylogin($user_login); 
     $user_id = $user->ID; 

     //login 
     wp_set_current_user($user_id, $user_login); 
     wp_set_auth_cookie($user_id); 
     do_action('wp_login', $user_login); 
    } 
} 
+1

NICE!最低の評判、最高の答え、同情私はあなたの答えを投票するのに十分な担当者を持っていない、私は今それをテストします。 ありがとう、私はゲストのログインについては知らなかったが、BlueRatに感謝しています。 すぐにあなたに戻って! – pythonian29033

+2

これは嬉しいです:) – BlueRat

+0

大丈夫私はそれが私の質問に関連している程度に基づいて答えとしてこれを受け入れています、私は既に他の選択肢をうまく使っていました(別のログインキーをwp_user "ID"を外部キーとして使用し、実際のパスワードを自分自身でハッシュしています。これは、ログインキーを確認した後に復号化します。次に、 'key_expired'というテーブルのブール値フィールドを1に設定して、再び) しかし、そこに縫い目は、ワードプレスに侵入し、そのコアを変更せずに自分のユーザーIDだけを使用してWordPressにユーザーをログインする既知の方法はありません – pythonian29033

-1

本当に悪いideeaだこと。このことを考えてみましょう: あなたは、次のリンクが含まれているユーザAとBに電子メールを送信:ユーザBがAさんのuser_idで自分のユーザIDを置き換え

http://wordpressblog.exp/fromemail?user_id=A; 
http://wordpressblog.exp/fromemail?user_id=B; 

場合、彼は、ユーザーAのアカウントへのアクセス権を持っています。 ヤウドは、オートログインユーザー(テストされていない)にここで道

+0

こんにちはヴラド、 屋、アイデアは彼らに私は彼らのWPのユーザーIDを決定することになるとの一意のキーを与えることだった。この操作を行うためのWP事前に定義された方法があった場合、私は実際には思っていた... – pythonian29033

+4

-1このため、質問には答えません –

2

あなたが送信されたすべてのリンクを保存するために別のテーブルを作成し、それぞれの一時認証コードはしばらくの間有効です。その後、その一時認証コードと電子メールをURLパラメータとして渡します。

一時的な認証コードに基づいてユーザーを検証するコードを作成します。電子メールで彼をリダイレクトすることができます。

+0

Sandeepさん、ありがとう、これをやっているだけです。ユーザーをログオンするにはwordpressメソッドが必要です。 – pythonian29033

3

wp_loginフックで2つのパラメータを渡す必要があります。 Wp codex

wp_set_current_user($user_id, $user->user_login); 
wp_set_auth_cookie($user_id); 
do_action('wp_login', $user->user_login, $user); 
+1

私はウクライナ出身です...もしあなたにとって重要なのなら – Vadym

+0

lmfu、私はその違いを知らない(_ ,,) ...しかし、それはあなたの答えに私の失望を説明します。 – pythonian29033

関連する問題