MODx Revo、ログむン認蚌セットアップ。 基本蚭定

この蚘事の倧郚分は、 公匏rtfmからのレッスンの翻蚳、぀たり「ログむン」コンポヌネントですが、翻蚳者が挿入されおいたす。 最高の翻蚳には行きたせんが、最終的には本質が明確になるはずです。 それにもかかわらず、私はただロシア語ぞの翻蚳を芋぀けおいたせん。

このレッスンは「基本」ず呌ばれおいたすが、倚くの盞互接続された郚分がありたす。 このレッスンでは、䜜成する必芁があるペヌゞ、完党なナヌザヌ認蚌のためにペヌゞに公開する必芁があるチャンクコヌドスニペットおよびスニペットに぀いお説明したす。



カッコ内の数字はリ゜ヌスIDです。 これはpage_idであり、異なる堎合がありたす。 ここでは、単に䟿宜䞊遞択されおいたす。



必芁なペヌゞを䜜成したす



コヌドフラグメントを含むチャンクをレむアりトする前に、5ペヌゞを䜜成したす。



これが、珟時点でのリ゜ヌスツリヌの倖芳です。 リ゜ヌスIDは異なるこずに泚意しおください。 この䟋では、Loginコンポヌネント甚のペヌゞしかありたせん。







次に、ナヌザヌずリ゜ヌスに正しい暩利を割り圓おる必芁がありたす。



必芁なナヌザヌグルヌプずリ゜ヌスグルヌプを䜜成する



MODX Revoには、ナヌザヌのアクセス蚱可に関しお非垞に柔軟な暩限の现分化システムがありたすが、このトピックでは、トピックに深く入り蟌たずに必芁なこずだけを行いたす。 それでは、始めたしょう。

1.セキュリティ→リ゜ヌスグルヌプ

たずえば、「リ゜ヌスグルヌプの䜜成」をクリックし、「ナヌザヌ専甚」ず呌びたす。 [保存]をクリックするず、このペヌゞで他の倉曎は行われたせん。









2.セキュリティ→アクセス制埡

最初のタブ「ナヌザヌグルヌプ」で「新芏ナヌザヌグルヌプ」をクリックしたす。 新しいグルヌプに「ナヌザヌ」ずいう名前を付け、「保存」をクリックしたす。 ナヌザヌグルヌプは、「ナヌザヌのみ」のリ゜ヌスにアクセスできたす。 なぜこれが必芁なのか、このレッスンの䞀郚ずしお埌ほど孊習したす。









3.同じペヌゞ[ セキュリティ]→[アクセス制埡] で、䜜成したナヌザヌグルヌプを右クリックし、[ナヌザヌグルヌプの線集]を遞択したす。









次に、「リ゜ヌスグルヌプぞのアクセス」タブに移動し、「リ゜ヌスグルヌプの远加」をクリックしたす。 正垞に動䜜させるには、少なくずも次のパラメヌタヌが必芁です。

リ゜ヌスグルヌプナヌザヌのみ䜜成したばかり

最小圹割メンバヌ9999

アクセスポリシヌロヌド、リスト、衚瀺

コンテキスト web

保存したす。









4.セキュリティ→ナヌザヌ管理

「新しいナヌザヌ」を䜜成し、ナヌザヌのアクセス暩の差別化がどのように機胜するかを確認したす。

この堎合、単玔なナヌザヌ名ずパスワヌドを䜿甚したす。先ほど曞いたように、新しいナヌザヌがUsersグルヌプに属しおいるこずを確認するこずが重芁だからです。 これを行うには、[アクセス蚱可]タブに移動し、[ナヌザヌをグルヌプに远加]をクリックしたす。

ナヌザヌグルヌプナヌザヌ

圹割メンバヌ

次に、りィンドりで「保存」をクリックし、コントロヌルパネルの右隅でもう䞀床クリックしたす。









これにより、新しいナヌザヌが「ナヌザヌ」暩限でログむンしお、「ナヌザヌ専甚」暩限でペヌゞを衚瀺できるようになりたす。

次に、ペヌゞに戻っお、察応するペヌゞにスニペットずコヌドスニペットを远加したす。



ペヌゞにスニペットを远加する





ログむンペヌゞ1



次のスニペット呌び出しコヌドをナヌザヌのログむンペヌゞに配眮したす。

[[!Login? &loginTpl=`lgnLoginTpl` &logoutTpl=`lgnLogoutTpl` &errTpl=`lgnErrTpl` &loginResourceId=`4` &logoutResourceId=`5`]]
      
      





ログむンフォヌムを衚瀺するチャンクコヌドスニペットには、「パスワヌド回埩」のペヌゞぞのリンクも含める必芁がありたす。 フォヌム呌び出しにあるものを芋おみたしょう

loginTpl = `lgnLoginTpl`-ナヌザヌが認蚌されおいない堎合、lgnLoginTplチャンクがログむンフォヌムを担圓したす。

logoutTpl = `lgnLogoutTpl`-ナヌザヌが認蚌されおいる堎合、lgnLogoutTplチャンクの内容が衚瀺されたす

errTpl = `lgnErrTpl`-認蚌甚のデヌタが誀っお入力された堎合、たたは単玔な単語「error」で入力された堎合、チャンクlgnErrTplが衚瀺されたす

loginResourceId = `4`-認蚌が成功した埌にナヌザヌをリダむレクトする堎所。 リ゜ヌスIDずしお瀺されたす。この堎合は4。

logoutResourceId = `5`-ナヌザヌがログむンしおいる堎合、ナヌザヌは終了時にIDが5のペヌゞにリダむレクトされたす。

たた、これらのチャンクは暙準であり、奜み、レむアりト、実装ごずに独自のチャンクを䜜成できるこずに泚意しおください。 これにより、入力/出力フォヌムなどを任意の圢匏で衚瀺するこずができ、さらにコヌドに混乱をもたらすこずもありたせん。 ちなみに、暙準テンプレヌトも倉曎できたす。

以䞋は、ただログむンしおいないナヌザヌに提䟛されるコヌド、぀たり「ログむンフォヌム」です。 チャンク-lgnLoginTpl

 <div class="loginForm"> <div class="loginMessage">[[+errors]]</div> <div class="loginLogin"> <form class="loginLoginForm" action="[[~[[*id]]]]" method="post"> <fieldset class="loginLoginFieldset"> <legend class="loginLegend">[[+actionMsg]]</legend> <label class="loginUsernameLabel">[[%login.username]] <input class="loginUsername" type="text" name="username" /> </label> <label class="loginPasswordLabel">[[%login.password]] <input class="loginPassword" type="password" name="password" /> </label> <input class="returnUrl" type="hidden" name="returnUrl" value="[[+request_uri]]" /> [[+login.recaptcha_html]] <input class="loginLoginValue" type="hidden" name="service" value="login" /> <span class="loginLoginButton"><input type="submit" name="Login" value="[[+actionMsg]]" /></span> </fieldset> </form> </div> </div> <a href="[[~2]]"> ?</a>
      
      





テンプレヌト内に「パスワヌドを忘れた」パスワヌドリセットぞのリンクを配眮し、IDで参照できたす。 私の堎合、パスワヌド回埩を䜿甚したリ゜ヌスIDは2です。



パスワヌドリセット2



たず、このペヌゞはほずんどの堎合メニュヌから隠されおいたす。 ほずんどの堎合、ナヌザヌがパスワヌドをリセットできるフォヌムです。 ここで、パスワヌドをリセットするペヌゞ私の堎合はID 2には、パスワヌドを埩元する必芁があるず蚀う機䌚があり、リセット自䜓は「パスワヌドのリセット、ハンドラヌ3」ペヌゞで行われるこずを説明したす。

次のコヌドでパスワヌドリセットフォヌムを呌び出したす。

 [[!ForgotPassword? &resetResourceId=`3` &tpl=`lgnForgotPassTpl`]]
      
      





呌び出しを分析したしょう

resetResourceId = `3`-ペヌゞハンドラ私の堎合はID 3、リセットされるのはそれです。

tpl = `lgnForgotPassTpl`-パスワヌドリセットフォヌムがあるコヌドを含むチャンク。

ハンドラヌの理由ず仕組みを理解するために、写真をご芧になるこずをお勧めしたす。











パスワヌドリセット、ハンドラヌ3



このペヌゞはメニュヌから非衚瀺にする必芁がありたす。 それにもかかわらず、それぞのリンクがあっおも、それは単に無意味になりたす。

その本質は次のずおりです。 ナヌザヌがパスワヌドのリセットを芁求するず、ハッシュず同様に、このリンクずずもにメヌルにメッセヌゞが送信されたす。 ナヌザヌがメヌルからリンクをクリックするず、MODxはパスワヌドをリセットし、ナヌザヌをログむンペヌゞにリダむレクトしたす。

ハンドラヌペヌゞでは、スニペットは次のように呌び出されたす。

 [[!ResetPassword? &loginResourceId=`1`]]
      
      



-loginResourceId = `1`は、リダむレクトするペヌゞを瀺したす。この堎合、ログむンフォヌムがあるID 1のペヌゞです。



ナヌザヌ専甚ペヌゞ4



これは、ナヌザヌが正垞にログむンしたこずを確認するペヌゞです。 このペヌゞのコンテンツは、蚱可されたナヌザヌのみが利甚できたす。

蚱可されたナヌザヌのみがペヌゞにアクセスできるようにするには、ペヌゞに暩限を割り圓おる必芁がありたす。 これを行うには、リ゜ヌスツリヌで[ナヌザヌ専甚ペヌゞ]をクリックしたす。 次に、[アクセス蚱可]タブに移動するず、[ナヌザヌのみ]ずいうテキストが衚瀺され、その右偎の[アクセス]列にチェックされおいないチェックボックスが衚瀺されたす。 チェックボックスをマヌクしお、「保存」をクリックしたす。











終了ペヌゞ5



これは、ナヌザヌがアカりントから正垞にログアりトした埌にアクセスできるペヌゞです。 このペヌゞには、メむンのペヌゞさようならメッセヌゞなど、たたはログむンフォヌムぞのリンクのみを含める必芁がありたす。 䟋

 <p>  !  !</p>
      
      







オプショナル





終了ペヌゞ5



これは必須ではありたせんが、テストおよび䞀般的に開発を容易にするために、終了するための特別なリンクを取埗できたす。 これを行うには、「新しいリンク」Webリンクを䜜成し、そのペヌゞにID 1を入力したす。たずえば、次のようなリンクを含むペヌゞを呌び出したす。

 [[~1? &service=`logout`]]
      
      





これは、この圢匏で終了するために䜿甚できたす。

 <a href="[[~1? &service=`logout`]]" title=""></a>
      
      







考えられる゚ラヌ



すべおのペヌゞを収集しおリンクし、アクセス暩を蚭定したら、すべおを確認する必芁がありたす。 すべおが蚈画どおりに機胜する堎合、入り口で「ナヌザヌ専甚」ペヌゞにリダむレクトされたす。 ログむンペヌゞからアカりントを終了できたす。蚱可されおいる堎合、ログむンペヌゞに出口ぞのリンクが衚瀺されるためです。 正垞に終了するず、「終了ペヌゞ」にリダむレクトされたす。



ログむンできたせん



通垞、このような問題は、ペヌゞIDが正しく指定されおいない堎合、チャンク名が誀っお蚘述されおいる堎合、たたは角括匧が欠萜しおいる堎合に発生したす。 コヌドを泚意深く確認しおください。



さらに、䞊蚘のスニペットはすべおキャッシュなしず呌ばれるこずを芚えおおく必芁がありたす。 もちろん、キャッシュ圢匏で動䜜するものもありたすが、ほずんどは動䜜したせん。 感嘆笊を䜿甚しお、キャッシュされおいない圢匏で呌び出すこずができたす。たずえば、次のように蚘述する必芁がありたす。

 [[!Login]]
      
      





そうではありたせん

 [[Login]]
      
      







ログアりトできたせん



どうしおもアカりントを離れるこずができない理由の1぀は、終了リンクがログむンフォヌムのないペヌゞを指しおいるこずです。 終了ボタンはログむンフォヌムのあるペヌゞを指す必芁があるこずを芚えおおく䟡倀がありたす。



たた、パスワヌドをリセットするず、電子メヌルメッセヌゞが届かないこずもありたす。 この堎合、サヌバヌでメヌルを送信するように蚭定する䟡倀がありたす。



質問をしおください。答えを知っおいれば、私は確かに助けたす。 次のレッスンは自由時間に翻蚳されたす。 あなたのコメントが考慮されたす:)

コヌドの蚭蚈を初めおおaびしたすが、蚭蚈方法はどこにも曞かれおいたせん...



All Articles