1
00:00:00,210 --> 00:00:03,550
歡迎回來，在這一課，我們會看到一些有趣的新材料。

2
00:00:03,600 --> 00:00:15,980
我們要我們的用戶模型相結合，我們已經佈滿了露營地的認證，以確保用戶不能刪除露營地，他或她沒有創造或用戶無法編輯露營地，他或她沒有創造。

3
00:00:16,200 --> 00:00:18,450
這就是所謂的授權。

4
00:00:18,600 --> 00:00:27,190
因此，身份驗證和授權也有不同的身份驗證是指找出是否有人是他們說他們是誰。

5
00:00:27,450 --> 00:00:30,780
那麼授權是，一旦你知道某人是誰。

6
00:00:30,810 --> 00:00:33,090
你找出他們可以做什麼。

7
00:00:33,090 --> 00:00:34,840
所以把它看作權限。

8
00:00:35,040 --> 00:00:41,190
能有什麼人什麼什麼是授權人在我們的應用程序的安全檢查做。

9
00:00:41,190 --> 00:00:49,710
所以，如果你沒有自己的營地，如果你不具有相同的內徑作為露營地的作者，你將無法更新或刪除它。

10
00:00:49,980 --> 00:00:58,270
因此，讓我們從簡單的開始，讓我們使用它，這樣除非你自己的露營地，你不能給你的編輯表單。

11
00:00:58,290 --> 00:01:01,970
因此，讓我們去我們的露營地的路線就在這裡。

12
00:01:02,400 --> 00:01:13,400
如果你試圖去營地的路線或更新，最終刪除，以及他們三個人都需要我們有同樣的邏輯，我們只是檢查我們想要做的是什麼。

13
00:01:13,560 --> 00:01:19,200
請問當前用戶的內徑符合筆者為營地的ID。

14
00:01:19,440 --> 00:01:25,720
所以請記住，這是我們的數據結構是什麼樣子，我們拉起了營地模型，其中。

15
00:01:25,980 --> 00:01:53,700
我們有筆者對於每個營地，並有一個內徑那將是一個內徑一個用戶它引用一個特定的用戶的對象I.D.然後我們當然有一個用戶有一個對象內徑這不是在這裡規定，但每個用戶都有一個內徑而我們要比較的用戶當前登錄內徑到營地筆者點ID，因此如果我們去，進了我們吧，我們能做到這一點很容易地。

16
00:01:53,700 --> 00:01:54,650
我們會從這裡開始。

17
00:01:54,900 --> 00:02:01,970
而我們要做的第一件事就是檢查是人誰是用戶登錄的。

18
00:02:02,640 --> 00:02:07,550
然後，如果沒有，我們將重定向的夏天。

19
00:02:08,430 --> 00:02:15,020
如果用戶在做用戶登錄自己的營地。

20
00:02:15,840 --> 00:02:24,900
如果是這樣，我們將讓用戶運行此代碼找到我的ID和刪除所有內容。

21
00:02:24,900 --> 00:02:27,420
否則，我們還將重定向。

22
00:02:28,260 --> 00:02:33,020
因此，讓我們填寫此啟動，看看是否有人在登錄。

23
00:02:33,240 --> 00:02:39,020
如果要求進行身份驗證，我們可以只寫。

24
00:02:39,300 --> 00:02:44,140
也可以用在這裡的地方已經定義了我們記錄的中間。

25
00:02:44,250 --> 00:02:46,670
我會告訴你在某一時刻，為什麼我們不打算這樣做。

26
00:02:46,680 --> 00:02:50,100
簡短的回答是，我們定義我們自己的中間件，只是一點點。

27
00:02:50,160 --> 00:02:53,670
因此，我們將這些功能結合起來，而不是這個中間件。

28
00:02:53,670 --> 00:02:59,970
所以，如果一個請求進行身份驗證，如果是這樣的話，那麼，我們是好去。

29
00:02:59,970 --> 00:03:06,040
如果不是這種情況，讓我們做一個恆定的日誌開始。

30
00:03:06,630 --> 00:03:14,850
您需要登錄才能做到這一點，那麼我們會做一個回應。

31
00:03:15,120 --> 00:03:21,480
而且，我們只是做一個發送啟動響應發送出去，我們將實際發送這一點。

32
00:03:21,530 --> 00:03:26,710
因此，如果我們看到，我們就會知道，我們不是在登錄的第一件事情會工作。

33
00:03:26,970 --> 00:03:35,750
因此，讓我們複製if語句裡面的代碼縮進和正確。

34
00:03:36,540 --> 00:03:37,190
好。

35
00:03:37,380 --> 00:03:38,820
因此，我們必須先登錄。

36
00:03:38,970 --> 00:03:41,490
這並不是什麼新東西，我們已經編寫代碼來做到這一點。

37
00:03:41,520 --> 00:03:44,900
所以，你可能會想在那裡我以一種不可思議的方式，我們那種是要對這個。

38
00:03:44,910 --> 00:03:46,460
但你會在短短的時刻，為什麼看到的。

39
00:03:46,710 --> 00:03:48,150
讓我們來測試它雖然。

40
00:03:48,280 --> 00:03:51,110
保存啟動服務器了。

41
00:03:51,720 --> 00:03:54,300
當我啟動我沒有登錄。

42
00:03:54,300 --> 00:03:55,360
沒有人登錄。

43
00:03:55,620 --> 00:04:03,530
所以，如果我試著去它削減它告訴我，你需要先登錄才能做到這一點。

44
00:04:03,690 --> 00:04:06,730
因此，我們的第一部分工作得很好。

45
00:04:07,050 --> 00:04:13,770
然後，一旦我們鎖定我們將有另一種說法在這裡是在那裡將進行檢查。

46
00:04:13,770 --> 00:04:16,610
用戶是否擁有該營地。

47
00:04:17,700 --> 00:04:20,670
而且，我們將做到這一點的方式是非常簡單的。

48
00:04:20,670 --> 00:04:24,600
我們需要做的第一件事是找我們已經完成了在這裡的營地。

49
00:04:25,050 --> 00:04:35,390
然後一旦我們發現我們需要檢查，如果筆者在該營地的ID是要求用戶當前的用戶相匹配。

50
00:04:35,460 --> 00:04:37,170
然後，我們去好。

51
00:04:37,170 --> 00:04:42,900
所以這裡裡面是我們實際上做的確實在營地的用戶。

52
00:04:43,080 --> 00:04:47,880
我們會保持第一位，以檢查是否如果沒有錯誤，那麼我們將檢查有錯誤。

53
00:04:47,880 --> 00:05:01,980
是否在營地的用戶，因為這意味著找到宿營地存在，然後我們將有一個if語句和B，如果因為你可能會認為我們可以做到這一點營地點作者ID。

54
00:05:01,980 --> 00:05:03,170
等於等於平等。

55
00:05:03,450 --> 00:05:07,940
要求用戶點下劃線標識。

56
00:05:07,950 --> 00:05:20,430
所以，讓我告訴你我是什麼意思，讓我們做一個接觸日誌營地筆者認為ID，然後在它下面會做取消用戶做強調的ID登錄請求。

57
00:05:20,520 --> 00:05:22,010
所以註釋掉if語句。

58
00:05:22,320 --> 00:05:24,320
所以我們會看到這兩條線。

59
00:05:25,730 --> 00:05:31,510
我將在當然要記錄的，如果我只是嘗試，現在刷新而不被記錄在我們有一個錯誤。

60
00:05:32,240 --> 00:05:46,350
但如果我登錄現在有白薯登錄，然後我回去花崗岩礦它兇多吉少。

61
00:05:46,610 --> 00:05:47,580
我們出現了問題。

62
00:05:47,750 --> 00:05:49,950
貌似讓我們來看看。

63
00:05:50,300 --> 00:05:55,280
嗯，這是愚蠢的，並試圖取消像亞瑟露營地露營地不存在。

64
00:05:55,310 --> 00:05:57,130
它的發現露營地。

65
00:05:57,350 --> 00:06:01,450
所以我會嘗試再次重新啟動服務器。

66
00:06:02,660 --> 00:06:04,430
我們第一次新鮮。

67
00:06:04,730 --> 00:06:07,310
你知道，告訴我們您需要將仍然登錄。

68
00:06:07,310 --> 00:06:11,810
因此，我們再次登錄土豆頭。

69
00:06:11,810 --> 00:06:12,860
密碼。

70
00:06:13,270 --> 00:06:14,000
好。

71
00:06:14,570 --> 00:06:21,050
現在，如果我嘗試並獲得它來看看我們在這裡看到的。

72
00:06:21,110 --> 00:06:23,370
我們打印的第一件事情是這樣的。

73
00:06:23,390 --> 00:06:31,650
所以這是發現營地亞瑟ID，然後我們有要求的用戶數據，內徑他們看起來像他們一樣。

74
00:06:32,120 --> 00:06:34,370
而且，當他們打印出它們是相同的。

75
00:06:34,370 --> 00:06:47,500
但在幕後實際上是不一樣的，所以請求的用戶id她下劃線ID是一個字符串，發現營地筆者點的ID是貓鼬對象的對象。

76
00:06:47,510 --> 00:06:49,380
而這僅僅是一個棘手的。

77
00:06:49,710 --> 00:06:59,440
我不時因為它們看起來是一樣的它真的令人沮喪，當你試圖調試，但事實是，第一個是也不是一個字符串這是一個貓鼬對象忘掉它。

78
00:06:59,540 --> 00:07:00,530
那一個，我們打印出來。

79
00:07:00,530 --> 00:07:04,470
我們看到一個字符串，但是這只是兩個字符串版本。

80
00:07:04,490 --> 00:07:06,460
幕後它不是一個字符串。

81
00:07:06,740 --> 00:07:07,610
這是一個字符串。

82
00:07:07,610 --> 00:07:09,750
所以，當我們比較他們將無法正常工作。

83
00:07:10,070 --> 00:07:19,200
因此，而不是他們的三重等於或雙比較等於我們所能做的卻是使用貓鼬給了我們這個目的的方法。

84
00:07:19,520 --> 00:07:23,180
所以我們要做的就是寫一個IF語句放在而不是檢查露營地。

85
00:07:23,210 --> 00:07:26,620
作者多德ID三重平等在用戶ID請求。

86
00:07:26,870 --> 00:07:31,650
我們使用點等於。

87
00:07:31,650 --> 00:07:33,070
在那裡，我們走了。

88
00:07:33,950 --> 00:07:43,000
而現在我們的IF語句應該只是這需要找到露營地又是怎麼回來，我們正在使用的ID查找數據庫的事實工作。

89
00:07:43,040 --> 00:07:54,530
因此，我們發現，與基於關閉路線的ID，然後我們檢查，如果在那個特定的露營地發現作者ID等於用戶ID當前登錄。

90
00:07:54,560 --> 00:07:57,090
如果是這樣的話，我們會做的一件事。

91
00:07:57,230 --> 00:07:58,750
否則，我們會做別的事情。

92
00:07:58,760 --> 00:08:09,090
所以，如果是這樣的話，我們將做到這一點在這裡渲染找到露營地編輯營地頁的營地頁。

93
00:08:09,230 --> 00:08:11,320
否則，我們會做休息並發送。

94
00:08:11,720 --> 00:08:22,520
您沒有權限去做，當然最終會改變這種否則將不只是一個紅點％，但我們將有一個顯示實際的消息。

95
00:08:22,520 --> 00:08:34,280
因此，讓我們嘗試去到我們的應用程序去展示頁面的第一件事，如果我嘗試和現在我需要先登錄編輯。

96
00:08:34,550 --> 00:08:49,070
現在，如果我登錄或我的不是土豆頭以外的其他人所以會做西紅柿頭註冊，我嘗試和編輯，你會看到希望。

97
00:08:49,100 --> 00:08:52,160
我們去那裡我得到你沒有權限去做。

98
00:08:52,280 --> 00:09:05,730
現在，如果我們回去和註銷並重新登錄土豆頭，並再次嘗試這一切我嘗試和編輯。

99
00:09:06,020 --> 00:09:07,010
我也有權限。

100
00:09:07,040 --> 00:09:08,270
我結束了在這裡。

101
00:09:08,270 --> 00:09:09,420
因此，它的工作。

102
00:09:09,440 --> 00:09:10,750
這是偉大的。

103
00:09:10,880 --> 00:09:15,750
現在，我們將做什麼是真正重構為一個單獨的函數這一點。

104
00:09:15,800 --> 00:09:18,200
大多數這種邏輯將它稱為類似。

105
00:09:18,200 --> 00:09:29,030
檢查用戶露營地或確保營地用戶一些地方我們基本上沒有檢查用戶匹配當前登錄這個特殊的營地。

106
00:09:29,240 --> 00:09:34,050
我們會轉移到這中間的原因是，我們將用它編輯。

107
00:09:34,190 --> 00:09:35,920
我們也想使用它的更新。

108
00:09:35,960 --> 00:09:39,110
我們不希望有人能夠如果他們沒有登錄發送一個請求。

109
00:09:39,110 --> 00:09:41,890
因此，即使只是再次使用瀏覽器。

110
00:09:42,050 --> 00:09:48,110
只有這樣，才能做到真正獲得視覺上的更新使用這種形式發送數據。

111
00:09:48,350 --> 00:09:53,110
你可以使用郵遞員，你可以從郵遞員發送請求，而不是進行身份驗證。

112
00:09:53,120 --> 00:09:57,850
所以我們想在這裡同樣的邏輯，我們希望做同樣的事情為刪除。

113
00:09:57,920 --> 00:10:02,640
所以，我們不希望你能夠刪除一些露營地，如果你不登錄。

114
00:10:02,690 --> 00:10:04,680
如果你沒有擁有它。

115
00:10:04,970 --> 00:10:10,080
所以，我們要做的就是寫一個中間件，我們將複製此代碼現在。

116
00:10:10,220 --> 00:10:15,850
我會離開它存在，但我們要下去現在只是與我們的其他中間件。

117
00:10:15,920 --> 00:10:22,290
那麼最後一個叫做檢查露營地的所有權就這樣。

118
00:10:22,580 --> 00:10:25,380
然後我們將其粘貼代碼，我們，我們將有一個小的工作需要做。

119
00:10:25,670 --> 00:10:32,750
但最終的目標是，在我們的編輯，我們應該能夠在這裡補充我們的中間件檢查露營地的所有權。

120
00:10:32,750 --> 00:10:35,030
我們應該能夠做到這一點更新。

121
00:10:35,050 --> 00:10:39,930
而且還對刪除，但我們會在它開始，我們想要做的是什麼檢查。

122
00:10:39,930 --> 00:10:47,860
首先，你需要在請求響應中添加和下一記得那麼中間件建立請求響應下一個。

123
00:10:47,870 --> 00:10:50,140
因此，如果用戶在當前登錄。

124
00:10:50,330 --> 00:10:55,550
繼續前進，如果你沒有登錄，而不是做一個休息我們發送他們。

125
00:10:55,760 --> 00:10:59,860
現在我們要做的餐廳重定向，我們還沒有看到這個呢。

126
00:10:59,990 --> 00:11:05,140
我們可以做的紅尾鳥重定向回來，將採取用戶返回到他們從最何方。

127
00:11:05,150 --> 00:11:10,440
，他們並很快上頁會向您展示我們如何能發送消息。

128
00:11:10,460 --> 00:11:19,010
嗯，我們要發送的信息是一樣的東西你沒有登錄或者您必須被允許這樣做，但我們要離開它像現在。

129
00:11:19,010 --> 00:11:22,310
那麼，如果他們登錄我們要找到營地。

130
00:11:22,610 --> 00:11:26,420
如果有錯誤，我們只會重定向回也是如此。

131
00:11:26,420 --> 00:11:41,690
如果營地不能出於某種原因或找到同樣會發生這個錯誤如果數據庫沒有連接或一些奇怪的事情通常，我們不會真正看到其他人，如果營地請求用戶ID相匹配。

132
00:11:41,690 --> 00:11:57,010
所以，如果誰像在擁有這個話，而不是渲染露營地編輯，因為我們並不總是希望這個中間件渲染編輯什麼，我們希望它做的是移動到刪除代碼的休息或移動到代碼的用戶更新或修改。

133
00:11:57,020 --> 00:12:00,870
所以這就是我們接下來做。

134
00:12:00,910 --> 00:12:08,510
否則，如果他們不擁有它，我們會做一個蘇亞雷斯重定向回來。

135
00:12:08,510 --> 00:12:09,330
大。

136
00:12:09,410 --> 00:12:16,200
因此，讓我們嘗試了這一點存起來，我們將在這裡去更新我們的編輯路線。

137
00:12:16,310 --> 00:12:38,390
我們可以修剪下來了很多，所以我們不需要做任何這真的只是我們想要找的營地和所有我們要做的是，如果我們找到一個營地我們並不需要檢查它是否比賽了，因為我們正在做的，在中間的地方所以我們想要做的是找到一個露營地可以擺脫這一切。

138
00:12:38,510 --> 00:12:48,550
幾乎所有的Office格式正確這所以會出一點點。

139
00:12:48,550 --> 00:12:49,840
在那裡，我們走了。

140
00:12:50,690 --> 00:13:02,800
是因為我們在這裡添加舍克的露營地擁有率所有我們現在做的是，如果我們得到這一點就意味著我們已經檢查露營地的所有權和我們順利過關。

141
00:13:03,230 --> 00:13:18,440
否則，如果有我們會重定向與我得到的，我們這裡有一個小的語法錯誤，這是我不知在這裡刪除了我的函數的聲明，你可以看到它的抱怨，我們沒有處理錯誤的錯誤看到一個問題，我們可以處理。

142
00:13:18,440 --> 00:13:25,690
但事實是，如果我們得到這一點不應該有以找到PI ID，因為我們做到了下來這裡一個錯誤。

143
00:13:25,990 --> 00:13:29,370
而如果在這裡工作那麼我們應該很好的去反正。

144
00:13:29,390 --> 00:13:33,590
所以讓我們嘗試一下，雖然看，如果我們有任何問題。

145
00:13:33,620 --> 00:13:36,610
基本上，我們剛搬到我們的代碼到一個單獨的功能。

146
00:13:37,040 --> 00:13:41,650
請記住一個中間件被調用之前我們得到正確的處理程序。

147
00:13:42,140 --> 00:13:42,530
好。

148
00:13:42,560 --> 00:13:43,980
因此，讓我們給它一個鏡頭。

149
00:13:44,120 --> 00:13:49,270
首先，讓我們回過頭來讓我們說試試，然後點擊編輯。

150
00:13:49,280 --> 00:13:51,910
我沒有登錄。
