1
00:00:00,210 --> 00:00:03,550
Witamy z powrotem w tej lekcji będziemy widzieć zabawić nowego materiału.

2
00:00:03,600 --> 00:00:15,980
Zamierzamy połączyć nasz model użytkownika uwierzytelniania, które omówiliśmy z campingów, aby upewnić się, że użytkownik nie może usuwać campingu że on lub ona nie tworzyła ani użytkownik nie może edytować campingu, że on lub ona nie stworzył.

3
00:00:16,200 --> 00:00:18,450
I to jest coś, co nazywa autoryzacji.

4
00:00:18,600 --> 00:00:27,190
Więc uwierzytelnianie i autoryzacja istnieją różne Uwierzytelnianie odnosi się do dowiedzieć się, czy ktoś jest którzy mówią, że są.

5
00:00:27,450 --> 00:00:30,780
Dobrze zezwolenie jest gdy wiesz, kto jest kimś.

6
00:00:30,810 --> 00:00:33,090
Dowiedzieć się, co oni mogą zrobić.

7
00:00:33,090 --> 00:00:34,840
Więc pomyśl o tym jak o uprawnieniach.

8
00:00:35,040 --> 00:00:41,190
Co może ktoś, co to, co ktoś upoważniony do czynienia z ich poświadczenia bezpieczeństwa w naszej aplikacji.

9
00:00:41,190 --> 00:00:49,710
Więc jeśli nie jesteś właścicielem campingu jeśli nie mają takiego samego numeru identyfikacji jako autor campingów, że nie będzie w stanie zaktualizować lub usunąć.

10
00:00:49,980 --> 00:00:58,270
Więc zacznijmy proste i niech z nim pracować, tak że nie może dać Ci formularz edycji, chyba że jesteś właścicielem campingu.

11
00:00:58,290 --> 00:01:01,970
Więc chodźmy do naszych dróg campingu tutaj.

12
00:01:02,400 --> 00:01:13,400
A to, co chcemy zrobić, to jeśli spróbujesz i idź do drogi campingu lub aktualizacji i ostatecznie także usunąć wszystkie trzy z nich musimy mieć tę samą logikę, gdzie po prostu sprawdzić.

13
00:01:13,560 --> 00:01:19,200
Czy numeru identyfikacji bieżącego użytkownika dopasować identyfikator autora o tym campingu.

14
00:01:19,440 --> 00:01:25,720
Więc pamiętać, że to, co nasza struktura danych wygląda gdzie podciągnąć model pole kempingowe.

15
00:01:25,980 --> 00:01:53,700
Mamy autora dla każdego campingu i nie jest to średnica wewnętrzna że zamierza być średnica wewnętrzna dla użytkownika odwołuje obiektu numeru identyfikacji konkretnego użytkownika a następnie mamy użytkownikowi oczywiście, że ma numeru identyfikacji obiektów To nie podano tutaj, ale każdy użytkownik posiada numeru identyfikacji i zamierzamy porównać aktualnie zalogowanych użytkowników średnica wewnętrzna na campingu autor dot ID więc możemy to zrobić dość łatwo, jeśli idziemy do naszego w nim.

16
00:01:53,700 --> 00:01:54,650
Zaczniemy tam.

17
00:01:54,900 --> 00:02:01,970
A pierwszą rzeczą, którą chcesz zrobić, to sprawdzić, to ktoś, kto jest zalogowany użytkownik w ogóle.

18
00:02:02,640 --> 00:02:07,550
A potem, jeśli nie będziemy przekierowywać lato.

19
00:02:08,430 --> 00:02:15,020
Jeśli użytkownik jest zalogowany użytkownik robi właścicielem campingu.

20
00:02:15,840 --> 00:02:24,900
A jeśli tak będziemy pozwolić użytkownikowi uruchomić ten kod znaleźć moje ID i usuń wszystko.

21
00:02:24,900 --> 00:02:27,420
W przeciwnym razie będziemy również przekierować.

22
00:02:28,260 --> 00:02:33,020
Warto więc wypełnić tę aby rozpocząć, aby zobaczyć, czy ktoś jest zalogowany.

23
00:02:33,240 --> 00:02:39,020
Możemy po prostu napisz na żądanie jest uwierzytelniane.

24
00:02:39,300 --> 00:02:44,140
Możemy również skorzystać z pola, gdzie mamy już zdefiniowany tutaj jest zalogowany.

25
00:02:44,250 --> 00:02:46,670
Pokażę ci za chwilę, dlaczego nie zamierzamy tego robić.

26
00:02:46,680 --> 00:02:50,100
Krótka odpowiedź jest taka, że ​​mamy do definiowania własnej middleware i tylko trochę.

27
00:02:50,160 --> 00:02:53,670
Więc mamy zamiar połączyć tę funkcjonalność, zamiast tego pośredniczącego.

28
00:02:53,670 --> 00:02:59,970
Więc jeżeli wniosek został uwierzytelniony jeśli jest, to jesteśmy dobrze iść.

29
00:02:59,970 --> 00:03:06,040
Jeśli to nie jest przypadek zróbmy stałą dziennik, aby rozpocząć.

30
00:03:06,630 --> 00:03:14,850
Musisz być zalogowany, aby to zrobić, a potem zrobimy odpowiedzi.

31
00:03:15,120 --> 00:03:21,480
I niech po prostu zrobić, aby rozpocząć reakcję send out wysyłania i będziemy to wysyłać rzeczywistości.

32
00:03:21,530 --> 00:03:26,710
Więc jeśli widzimy, że my wiemy, że nie jesteś zalogowany, a pierwszą rzeczą, jaką będzie pracował.

33
00:03:26,970 --> 00:03:35,750
Warto więc skopiować ten kod wewnątrz if i wcięte prawidłowo.

34
00:03:36,540 --> 00:03:37,190
OK.

35
00:03:37,380 --> 00:03:38,820
Więc musimy być zalogowany.

36
00:03:38,970 --> 00:03:41,490
Która nie jest niczym nowym, że już napisany kod, aby to zrobić.

37
00:03:41,520 --> 00:03:44,900
Więc może być myślenie, dokąd idę o tym w dziwny sposób, który my niby jesteśmy.

38
00:03:44,910 --> 00:03:46,460
Ale zobaczysz za chwilę dlaczego.

39
00:03:46,710 --> 00:03:48,150
Załóżmy, przetestować go jednak.

40
00:03:48,280 --> 00:03:51,110
Zapisz uruchomić serwer w górę.

41
00:03:51,720 --> 00:03:54,300
A kiedy zacznę się nie jestem zalogowany.

42
00:03:54,300 --> 00:03:55,360
Nikt nie jest zalogowany.

43
00:03:55,620 --> 00:04:03,530
Więc jeśli spróbuję przejść ciąć na to, że mówi mi, musisz być zalogowany, aby to zrobić.

44
00:04:03,690 --> 00:04:06,730
Tak więc nasza pierwsza część pracuje dobrze.

45
00:04:07,050 --> 00:04:13,770
Potem raz mamy zablokowane będziemy mieć kolejne oświadczenie, w którym znajduje się tu, gdzie będzie to sprawdzić.

46
00:04:13,770 --> 00:04:16,610
Czy użytkownik jest właścicielem campingu.

47
00:04:17,700 --> 00:04:20,670
I sposób, że zrobimy to całkiem proste.

48
00:04:20,670 --> 00:04:24,600
Pierwszą rzeczą, jaką musimy zrobić, to znaleźć na campingu, który mamy już zrobione tutaj.

49
00:04:25,050 --> 00:04:35,390
A potem kiedy już go znaleźć musimy sprawdzić, czy identyfikator autora na tym campingu mecze bieżącego użytkownika, który jest żądać tego użytkownika.

50
00:04:35,460 --> 00:04:37,170
Wtedy jesteśmy dobrze iść.

51
00:04:37,170 --> 00:04:42,900
Więc wewnątrz tutaj jest miejsce, gdzie faktycznie królice użytkownika na campingu.

52
00:04:43,080 --> 00:04:47,880
Będziemy pierwszy bit do sprawdzenia, czy jest to błąd, jeśli nie ma błędu wtedy będziemy sprawdzać.

53
00:04:47,880 --> 00:05:01,980
Czy użytkownikowi na campingu, bo to oznacza, znaleziono istnieje campingu i wtedy będziemy mieć if i B, jeśli campingu dot autor ID jak mogłoby się wydawać, że możemy to zrobić.

54
00:05:01,980 --> 00:05:03,170
Równa równa równych.

55
00:05:03,450 --> 00:05:07,940
Zażądać dot użytkownika podkreślenia tożsamości.

56
00:05:07,950 --> 00:05:20,430
Więc niech mi tylko pokazać, co mam na myśli zróbmy dziennik kontakt campingu autor myślał identyfikator, a następnie poniżej to zrobi anulować tę prośbę dziennika użytkownik nie podkreślają ID.

57
00:05:20,520 --> 00:05:22,010
Więc komentarz out if.

58
00:05:22,320 --> 00:05:24,320
Więc zobaczymy, te dwie linie.

59
00:05:25,730 --> 00:05:31,510
Będę musiał się zalogować, oczywiście jeśli tylko spróbować odświeżyć teraz bez logowania mamy błąd.

60
00:05:32,240 --> 00:05:46,350
Ale jeśli nie ma teraz zalogować Potato Head w dzienniku, a potem wrócić do kopalni granitu slash na niego.

61
00:05:46,610 --> 00:05:47,580
Mamy problem.

62
00:05:47,750 --> 00:05:49,950
Wygląda na to, zobaczmy.

63
00:05:50,300 --> 00:05:55,280
Dobrze, że to głupie i próbuje odwołać się jak campingu w Arthur campingu nie istnieje.

64
00:05:55,310 --> 00:05:57,130
Można go znaleźć campingu.

65
00:05:57,350 --> 00:06:01,450
Więc spróbuję ponownie zrestartować serwer.

66
00:06:02,660 --> 00:06:04,430
Pierwszy raz jesteśmy świeże.

67
00:06:04,730 --> 00:06:07,310
Wiesz, mówią nam, musisz być zalogowany nadal.

68
00:06:07,310 --> 00:06:11,810
Więc znowu zalogować Potato Head.

69
00:06:11,810 --> 00:06:12,860
Hasło.

70
00:06:13,270 --> 00:06:14,000
OK.

71
00:06:14,570 --> 00:06:21,050
Teraz, gdy próbuję i zrobić to spojrzeć na to, co widzimy tutaj.

72
00:06:21,110 --> 00:06:23,370
Pierwszą rzeczą, którą możemy wydrukować wygląda następująco.

73
00:06:23,390 --> 00:06:31,650
Więc to jest znaleźć campingu Arthur ID, a następnie mamy żądania danych użytkownika średnica wewnętrzna i wyglądają jak są one identyczne.

74
00:06:32,120 --> 00:06:34,370
A kiedy są one drukowane są one identyczne.

75
00:06:34,370 --> 00:06:47,500
Ale za kulisami rzeczywistości nie są takie same, więc wnosi user id jej podkreślenia Identyfikator jest ciągiem znaleźć campingu autor dot ID obiekt jest obiektem Mangusta.

76
00:06:47,510 --> 00:06:49,380
I to jest właśnie podchwytliwe.

77
00:06:49,710 --> 00:06:59,440
I zapomnij o tym od czasu do czasu to naprawdę frustrujące, bo wyglądają tak samo, gdy starasz się debugowania, ale prawda jest pierwszą w rzeczywistości nie jest ciągiem to obiekt Mangusta.

78
00:06:59,540 --> 00:07:00,530
To jeden możemy wydrukować.

79
00:07:00,530 --> 00:07:04,470
Widzimy ciąg ale to tylko wersja dwóch znaków.

80
00:07:04,490 --> 00:07:06,460
Za kulisami nie jest ciągiem.

81
00:07:06,740 --> 00:07:07,610
I to jest ciąg.

82
00:07:07,610 --> 00:07:09,750
Więc kiedy ich porównanie to nie będzie działać.

83
00:07:10,070 --> 00:07:19,200
Więc zamiast porównując je z potrójnymi równych lub podwójne równa co możemy zrobić, to zamiast tego użyć metody, która daje nam mangusta do tego celu.

84
00:07:19,520 --> 00:07:23,180
Więc co możemy zrobić, to napisać oświadczenie, jeśli trafi zamiast sprawdzać kempingów.

85
00:07:23,210 --> 00:07:26,620
Autor Dodd ID potrójne równi zgłosić przy identyfikatora użytkownika.

86
00:07:26,870 --> 00:07:31,650
Używamy dot równa.

87
00:07:31,650 --> 00:07:33,070
No to jedziemy.

88
00:07:33,950 --> 00:07:43,000
A teraz nasze oświadczenie IF powinna pracować z wyjątkiem faktu, że należy znaleźć campingu jeszcze raz, co wraca do bazy, że jesteśmy ze znalezieniem za pomocą tego identyfikatora.

89
00:07:43,040 --> 00:07:54,530
Tak więc okazuje się, że z ID w oparciu off trasie wtedy sprawdzić, czy identyfikator autora na danym znalezionego campingu wynosi aktualnie zalogowanych użytkowników ID.

90
00:07:54,560 --> 00:07:57,090
Jeśli tak jest w przypadku zrobimy jedno.

91
00:07:57,230 --> 00:07:58,750
W przeciwnym razie będziemy robić coś innego.

92
00:07:58,760 --> 00:08:09,090
Więc jeśli tak jest w przypadku zrobimy to tu renderowanie strony campingu strony campingu edycji znajdując campingu.

93
00:08:09,230 --> 00:08:11,320
W przeciwnym razie będziemy robić reszta będzie wysyłać.

94
00:08:11,720 --> 00:08:22,520
Nie masz uprawnień do tego oczywiście będzie to zmienić w końcu czy to nie będzie tylko czerwona kropka centów, ale będziemy mieć rzeczywisty komunikat, który wyświetla.

95
00:08:22,520 --> 00:08:34,280
Więc spróbujmy, aby przejść do naszej aplikacji przejść do Pokaż stronę pierwszą rzeczą, gdy próbuję go edytować i teraz muszę być zalogowany.

96
00:08:34,550 --> 00:08:49,070
Teraz, jeśli mogę się zalogować lub zarejestrować się za kogoś innego niż Potato Head tak zrobi głowę pomidorowy i staram i edytować, że zobaczysz nadzieją.

97
00:08:49,100 --> 00:08:52,160
Nie idziemy mogę nie masz uprawnień do tego.

98
00:08:52,280 --> 00:09:05,730
Teraz, jeśli chcemy wrócić i się wylogować i zalogować ponownie jako Potato Head i spróbuj to wszystko jeszcze raz spróbować i edycji.

99
00:09:06,020 --> 00:09:07,010
I masz uprawnień.

100
00:09:07,040 --> 00:09:08,270
I kończy się tutaj.

101
00:09:08,270 --> 00:09:09,420
Tak to działa.

102
00:09:09,440 --> 00:09:10,750
Który jest świetny.

103
00:09:10,880 --> 00:09:15,750
I co teraz zrobimy faktycznie byłaby to w osobnej funkcji.

104
00:09:15,800 --> 00:09:18,200
Większość tej logiki będzie nazwać to coś podobnego.

105
00:09:18,200 --> 00:09:29,030
Sprawdź campingu użytkownika lub zapewnienia campingu użytkownika coś dokąd w zasadzie sprawdzanie czy aktualnie zalogowanego użytkownika meczu tej konkretnej campingu.

106
00:09:29,240 --> 00:09:34,050
A powodem, że przeniesiemy się middleware jest to, że będziemy go używać podczas edycji.

107
00:09:34,190 --> 00:09:35,920
Chcemy także, aby używać go na aktualizację.

108
00:09:35,960 --> 00:09:39,110
Nie chcemy, aby ktoś mógł wysłać wniosek, jeśli oni nie zalogowany.

109
00:09:39,110 --> 00:09:41,890
Więc nawet jeśli ponownie tylko przy użyciu przeglądarki.

110
00:09:42,050 --> 00:09:48,110
Jedynym sposobem na to faktycznie wizualnie dostać się do aktualizacji do wysyłania danych jest za pomocą tego formularza.

111
00:09:48,350 --> 00:09:53,110
Można użyć listonosza można wysłać żądanie od listonosza, a nie być uwierzytelnione.

112
00:09:53,120 --> 00:09:57,850
Dlatego chcemy tę samą logikę tu i chcemy zrobić to samo dla usunięcia.

113
00:09:57,920 --> 00:10:02,640
Więc nie chcemy, aby móc usunąć coś campingu jeśli nie jesteś zalogowany.

114
00:10:02,690 --> 00:10:04,680
A jeśli nie jest ich właścicielem.

115
00:10:04,970 --> 00:10:10,080
Więc co zrobimy to napisać middleware będziemy skopiować ten kod do teraz.

116
00:10:10,220 --> 00:10:15,850
Ja go tam zostawić, ale mamy zamiar zejść na razie tylko z naszej drugiej warstwy pośredniej.

117
00:10:15,920 --> 00:10:22,290
Dobrze ostateczna jeden nazywa kontrola własności campingu tak po prostu.

118
00:10:22,580 --> 00:10:25,380
A potem będziemy wklej ten kod, a my mamy trochę pracy do zrobienia.

119
00:10:25,670 --> 00:10:32,750
Ale ostatecznym celem jest to, że na naszej edycji powinniśmy móc dodać naszą middleware tutaj sprawdzić własności pole kempingowe.

120
00:10:32,750 --> 00:10:35,030
Powinniśmy być w stanie zrobić to zaktualizować.

121
00:10:35,050 --> 00:10:39,930
A także na usunięcie, ale zaczniemy na niego i to, co chcemy zrobić, to sprawdzić.

122
00:10:39,930 --> 00:10:47,860
Najpierw trzeba dodać w odpowiedzi na żądanie, a następnie pamiętać, że tak middleware jest skonfigurowana odpowiedź żądania następnego.

123
00:10:47,870 --> 00:10:50,140
Więc jeśli użytkownik jest aktualnie zalogowany.

124
00:10:50,330 --> 00:10:55,550
Ruszaj się, jeśli nie jesteś zalogowany, a nie robi resztę nam wysłać.

125
00:10:55,760 --> 00:10:59,860
Na razie mamy zamiar zrobić przekierowanie restauracji i nie widziałem tego jeszcze.

126
00:10:59,990 --> 00:11:05,140
Możemy to zrobić redstart przekierowanie z powrotem i że zajmie użytkownika z powrotem skąd pochodzą najbardziej.

127
00:11:05,150 --> 00:11:10,440
Poprzedniej strony, które były na bardzo szybko i są zamiar pokazać, w jaki sposób możemy wysłać wiadomość.

128
00:11:10,460 --> 00:11:19,010
Dobrze komunikat chcemy wysłać coś takiego jak Ty nie jesteś zalogowany, albo musi mieć możliwość, aby to zrobić, ale wyjeżdżamy to tak do teraz.

129
00:11:19,010 --> 00:11:22,310
Następnie, jeśli jesteś zalogowany mamy zamiar znaleźć campingu.

130
00:11:22,610 --> 00:11:26,420
Jeśli wystąpi błąd musimy po prostu przekierować z powrotem także.

131
00:11:26,420 --> 00:11:41,690
Znowu ten błąd by było, gdyby na campingu nie można znaleźć jakiegoś powodu lub jeśli baza danych nie jest podłączony lub jest trochę dziwne, że zazwyczaj nie będzie faktycznie zobaczyć else if campingu mecze identyfikator żądania użytkownika.

132
00:11:41,690 --> 00:11:57,010
Więc jeśli użytkownik, który jak się posiada to wtedy zamiast renderowania campingów zmienił, bo nie zawsze chcą tego middleware do renderowania zmienił to, co chcemy zrobić, to przejść do pozostałej części kodu w usunięciu lub przeniesieniu się do kodu aktualizacja lub edytować.

133
00:11:57,020 --> 00:12:00,870
Więc to gdzie mamy dalej robić.

134
00:12:00,910 --> 00:12:08,510
W przeciwnym razie, jeśli nie są właścicielami to zrobimy przekierowanie rez powrotem.

135
00:12:08,510 --> 00:12:09,330
Wspaniały.

136
00:12:09,410 --> 00:12:16,200
Więc spróbujmy się go zapisać, a my go an aktualizować nasze edycji trasy tutaj.

137
00:12:16,310 --> 00:12:38,390
Możemy to przyciąć dół dużo, więc nie musimy robić nic z tego naprawdę wyjątkiem chcemy znaleźć campingu i wszystko to zrobimy to, jeśli znajdziemy campingu nie musimy sprawdzić, czy to mecze ponieważ już robimy, że w środku, gdzie więc wszystko chcemy zrobić, to znaleźć campingu można pozbyć się tego wszystkiego.

138
00:12:38,510 --> 00:12:48,550
Prawie wszyscy Format Biuro to poprawnie więc się trochę.

139
00:12:48,550 --> 00:12:49,840
No to jedziemy.

140
00:12:50,690 --> 00:13:02,800
Tak, ponieważ dodaliśmy campingu stopy własności Scheck tu wszystko, co robimy teraz, gdy mamy do tego punktu oznacza to, że mamy już sprawdzone własności campingu i że my zrobiliśmy to przez.

141
00:13:03,230 --> 00:13:18,440
W przeciwnym razie istnieje problem mielibyśmy przekierowany że widzieli błędu dostaję to mamy mały błąd tutaj składni, która jest jakoś usunięte moją deklarację funkcji tu i widać to narzekają, że nie jesteśmy obsługi błędu, który możemy obsłużyć.

142
00:13:18,440 --> 00:13:25,690
Ale chodzi o to, czy mamy do tego momentu nie powinno być błąd w znalezieniu PI identyfikator, ponieważ zrobiliśmy to tutaj.

143
00:13:25,990 --> 00:13:29,370
A jeśli tu pracuje wtedy powinniśmy być dobrze iść tak.

144
00:13:29,390 --> 00:13:33,590
Więc spróbujmy go jednak sprawdzić, czy nie mamy żadnych problemów.

145
00:13:33,620 --> 00:13:36,610
Zasadniczo po prostu przeniósł się nasz kod w osobnej funkcji.

146
00:13:37,040 --> 00:13:41,650
I pamiętaj, middleware nazywa Zanim przejdziemy do właściwej obsługi.

147
00:13:42,140 --> 00:13:42,530
OK.

148
00:13:42,560 --> 00:13:43,980
Więc dajmy mu szansę.

149
00:13:44,120 --> 00:13:49,270
Pierwszą rzeczą, wróćmy i powiedzmy spróbować i kliknij Edytuj.

150
00:13:49,280 --> 00:13:51,910
Nie jestem zalogowany.
