歡迎回來，在這一課，我們會看到一些有趣的新材料。
我們要我們的用戶模型相結合，我們已經佈滿了露營地的認證，以確保用戶不能刪除露營地，他或她沒有創造或用戶無法編輯露營地，他或她沒有創造。
這就是所謂的授權。
因此，身份驗證和授權也有不同的身份驗證是指找出是否有人是他們說他們是誰。
那麼授權是，一旦你知道某人是誰。
你找出他們可以做什麼。
所以把它看作權限。
能有什麼人什麼什麼是授權人在我們的應用程序的安全檢查做。
所以，如果你沒有自己的營地，如果你不具有相同的內徑作為露營地的作者，你將無法更新或刪除它。
因此，讓我們從簡單的開始，讓我們使用它，這樣除非你自己的露營地，你不能給你的編輯表單。
因此，讓我們去我們的露營地的路線就在這裡。
如果你試圖去營地的路線或更新，最終刪除，以及他們三個人都需要我們有同樣的邏輯，我們只是檢查我們想要做的是什麼。
請問當前用戶的內徑符合筆者為營地的ID。
所以請記住，這是我們的數據結構是什麼樣子，我們拉起了營地模型，其中。
我們有筆者對於每個營地，並有一個內徑那將是一個內徑一個用戶它引用一個特定的用戶的對象I.D.然後我們當然有一個用戶有一個對象內徑這不是在這裡規定，但每個用戶都有一個內徑而我們要比較的用戶當前登錄內徑到營地筆者點ID，因此如果我們去，進了我們吧，我們能做到這一點很容易地。
我們會從這裡開始。
而我們要做的第一件事就是檢查是人誰是用戶登錄的。
然後，如果沒有，我們將重定向的夏天。
如果用戶在做用戶登錄自己的營地。
如果是這樣，我們將讓用戶運行此代碼找到我的ID和刪除所有內容。
否則，我們還將重定向。
因此，讓我們填寫此啟動，看看是否有人在登錄。
如果要求進行身份驗證，我們可以只寫。
也可以用在這裡的地方已經定義了我們記錄的中間。
我會告訴你在某一時刻，為什麼我們不打算這樣做。
簡短的回答是，我們定義我們自己的中間件，只是一點點。
因此，我們將這些功能結合起來，而不是這個中間件。
所以，如果一個請求進行身份驗證，如果是這樣的話，那麼，我們是好去。
如果不是這種情況，讓我們做一個恆定的日誌開始。
您需要登錄才能做到這一點，那麼我們會做一個回應。
而且，我們只是做一個發送啟動響應發送出去，我們將實際發送這一點。
因此，如果我們看到，我們就會知道，我們不是在登錄的第一件事情會工作。
因此，讓我們複製if語句裡面的代碼縮進和正確。
好。
因此，我們必須先登錄。
這並不是什麼新東西，我們已經編寫代碼來做到這一點。
所以，你可能會想在那裡我以一種不可思議的方式，我們那種是要對這個。
但你會在短短的時刻，為什麼看到的。
讓我們來測試它雖然。
保存啟動服務器了。
當我啟動我沒有登錄。
沒有人登錄。
所以，如果我試著去它削減它告訴我，你需要先登錄才能做到這一點。
因此，我們的第一部分工作得很好。
然後，一旦我們鎖定我們將有另一種說法在這裡是在那裡將進行檢查。
用戶是否擁有該營地。
而且，我們將做到這一點的方式是非常簡單的。
我們需要做的第一件事是找我們已經完成了在這裡的營地。
然後一旦我們發現我們需要檢查，如果筆者在該營地的ID是要求用戶當前的用戶相匹配。
然後，我們去好。
所以這裡裡面是我們實際上做的確實在營地的用戶。
我們會保持第一位，以檢查是否如果沒有錯誤，那麼我們將檢查有錯誤。
是否在營地的用戶，因為這意味著找到宿營地存在，然後我們將有一個if語句和B，如果因為你可能會認為我們可以做到這一點營地點作者ID。
等於等於平等。
要求用戶點下劃線標識。
所以，讓我告訴你我是什麼意思，讓我們做一個接觸日誌營地筆者認為ID，然後在它下面會做取消用戶做強調的ID登錄請求。
所以註釋掉if語句。
所以我們會看到這兩條線。
我將在當然要記錄的，如果我只是嘗試，現在刷新而不被記錄在我們有一個錯誤。
但如果我登錄現在有白薯登錄，然後我回去花崗岩礦它兇多吉少。
我們出現了問題。
貌似讓我們來看看。
嗯，這是愚蠢的，並試圖取消像亞瑟露營地露營地不存在。
它的發現露營地。
所以我會嘗試再次重新啟動服務器。
我們第一次新鮮。
你知道，告訴我們您需要將仍然登錄。
因此，我們再次登錄土豆頭。
密碼。
好。
現在，如果我嘗試並獲得它來看看我們在這裡看到的。
我們打印的第一件事情是這樣的。
所以這是發現營地亞瑟ID，然後我們有要求的用戶數據，內徑他們看起來像他們一樣。
而且，當他們打印出它們是相同的。
但在幕後實際上是不一樣的，所以請求的用戶id她下劃線ID是一個字符串，發現營地筆者點的ID是貓鼬對象的對象。
而這僅僅是一個棘手的。
我不時因為它們看起來是一樣的它真的令人沮喪，當你試圖調試，但事實是，第一個是也不是一個字符串這是一個貓鼬對象忘掉它。
那一個，我們打印出來。
我們看到一個字符串，但是這只是兩個字符串版本。
幕後它不是一個字符串。
這是一個字符串。
所以，當我們比較他們將無法正常工作。
因此，而不是他們的三重等於或雙比較等於我們所能做的卻是使用貓鼬給了我們這個目的的方法。
所以我們要做的就是寫一個IF語句放在而不是檢查露營地。
作者多德ID三重平等在用戶ID請求。
我們使用點等於。
在那裡，我們走了。
而現在我們的IF語句應該只是這需要找到露營地又是怎麼回來，我們正在使用的ID查找數據庫的事實工作。
因此，我們發現，與基於關閉路線的ID，然後我們檢查，如果在那個特定的露營地發現作者ID等於用戶ID當前登錄。
如果是這樣的話，我們會做的一件事。
否則，我們會做別的事情。
所以，如果是這樣的話，我們將做到這一點在這裡渲染找到露營地編輯營地頁的營地頁。
否則，我們會做休息並發送。
您沒有權限去做，當然最終會改變這種否則將不只是一個紅點％，但我們將有一個顯示實際的消息。
因此，讓我們嘗試去到我們的應用程序去展示頁面的第一件事，如果我嘗試和現在我需要先登錄編輯。
現在，如果我登錄或我的不是土豆頭以外的其他人所以會做西紅柿頭註冊，我嘗試和編輯，你會看到希望。
我們去那裡我得到你沒有權限去做。
現在，如果我們回去和註銷並重新登錄土豆頭，並再次嘗試這一切我嘗試和編輯。
我也有權限。
我結束了在這裡。
因此，它的工作。
這是偉大的。
現在，我們將做什麼是真正重構為一個單獨的函數這一點。
大多數這種邏輯將它稱為類似。
檢查用戶露營地或確保營地用戶一些地方我們基本上沒有檢查用戶匹配當前登錄這個特殊的營地。
我們會轉移到這中間的原因是，我們將用它編輯。
我們也想使用它的更新。
我們不希望有人能夠如果他們沒有登錄發送一個請求。
因此，即使只是再次使用瀏覽器。
只有這樣，才能做到真正獲得視覺上的更新使用這種形式發送數據。
你可以使用郵遞員，你可以從郵遞員發送請求，而不是進行身份驗證。
所以我們想在這裡同樣的邏輯，我們希望做同樣的事情為刪除。
所以，我們不希望你能夠刪除一些露營地，如果你不登錄。
如果你沒有擁有它。
所以，我們要做的就是寫一個中間件，我們將複製此代碼現在。
我會離開它存在，但我們要下去現在只是與我們的其他中間件。
那麼最後一個叫做檢查露營地的所有權就這樣。
然後我們將其粘貼代碼，我們，我們將有一個小的工作需要做。
但最終的目標是，在我們的編輯，我們應該能夠在這裡補充我們的中間件檢查露營地的所有權。
我們應該能夠做到這一點更新。
而且還對刪除，但我們會在它開始，我們想要做的是什麼檢查。
首先，你需要在請求響應中添加和下一記得那麼中間件建立請求響應下一個。
因此，如果用戶在當前登錄。
繼續前進，如果你沒有登錄，而不是做一個休息我們發送他們。
現在我們要做的餐廳重定向，我們還沒有看到這個呢。
我們可以做的紅尾鳥重定向回來，將採取用戶返回到他們從最何方。
，他們並很快上頁會向您展示我們如何能發送消息。
嗯，我們要發送的信息是一樣的東西你沒有登錄或者您必須被允許這樣做，但我們要離開它像現在。
那麼，如果他們登錄我們要找到營地。
如果有錯誤，我們只會重定向回也是如此。
如果營地不能出於某種原因或找到同樣會發生這個錯誤如果數據庫沒有連接或一些奇怪的事情通常，我們不會真正看到其他人，如果營地請求用戶ID相匹配。
所以，如果誰像在擁有這個話，而不是渲染露營地編輯，因為我們並不總是希望這個中間件渲染編輯什麼，我們希望它做的是移動到刪除代碼的休息或移動到代碼的用戶更新或修改。
所以這就是我們接下來做。
否則，如果他們不擁有它，我們會做一個蘇亞雷斯重定向回來。
大。
因此，讓我們嘗試了這一點存起來，我們將在這裡去更新我們的編輯路線。
我們可以修剪下來了很多，所以我們不需要做任何這真的只是我們想要找的營地和所有我們要做的是，如果我們找到一個營地我們並不需要檢查它是否比賽了，因為我們正在做的，在中間的地方所以我們想要做的是找到一個露營地可以擺脫這一切。
幾乎所有的Office格式正確這所以會出一點點。
在那裡，我們走了。
是因為我們在這裡添加舍克的露營地擁有率所有我們現在做的是，如果我們得到這一點就意味著我們已經檢查露營地的所有權和我們順利過關。
否則，如果有我們會重定向與我得到的，我們這裡有一個小的語法錯誤，這是我不知在這裡刪除了我的函數的聲明，你可以看到它的抱怨，我們沒有處理錯誤的錯誤看到一個問題，我們可以處理。
但事實是，如果我們得到這一點不應該有以找到PI ID，因為我們做到了下來這裡一個錯誤。
而如果在這裡工作那麼我們應該很好的去反正。
所以讓我們嘗試一下，雖然看，如果我們有任何問題。
基本上，我們剛搬到我們的代碼到一個單獨的功能。
請記住一個中間件被調用之前我們得到正確的處理程序。
好。
因此，讓我們給它一個鏡頭。
首先，讓我們回過頭來讓我們說試試，然後點擊編輯。
我沒有登錄。