1
00:00:00,210 --> 00:00:03,550
Welkom terug in deze les gaan we een aantal leuke nieuwe materiaal te zien.

2
00:00:03,600 --> 00:00:15,980
We gaan combineren onze user model de authenticatie die we hebben bedekt met campings om ervoor te zorgen dat een gebruiker niet camping dat hij of zij niet kan aanmaken verwijderen of een gebruiker kan een camping niet bewerken, dat hij of zij niet creëren.

3
00:00:16,200 --> 00:00:18,450
En dit is iets genaamd vergunning.

4
00:00:18,600 --> 00:00:27,190
Dus authenticatie en autorisatie zijn er verschillende authenticatie verwijst naar uit te vinden of iemand is wie ze zeggen te zijn.

5
00:00:27,450 --> 00:00:30,780
Nou vergunning is als je eenmaal weet wie iemand is.

6
00:00:30,810 --> 00:00:33,090
Je erachter te komen wat ze mogen doen.

7
00:00:33,090 --> 00:00:34,840
Dus denk aan het als toestemmingen.

8
00:00:35,040 --> 00:00:41,190
Wat kan iemand wat wat is iemand bevoegd te maken met hun veiligheidsmachtiging in onze applicatie.

9
00:00:41,190 --> 00:00:49,710
Dus als je niet beschikt over een camping eigenaar als je niet dezelfde I.D. hebben als de campings auteur dat u niet in staat zijn om te werken of te verwijderen.

10
00:00:49,980 --> 00:00:58,270
Dus laten we beginnen met eenvoudige en laten we ermee werken, zodat je je niet het bewerken vorm kan geven, tenzij u de eigenaar van de camping.

11
00:00:58,290 --> 00:01:01,970
Dus laten we naar onze camping routes hier.

12
00:01:02,400 --> 00:01:13,400
En wat we willen doen is als je probeert en ga naar de camping route of bij te werken en uiteindelijk te verwijderen alsook alle drie van hen moeten we dezelfde logica waar we gewoon controleren hebben.

13
00:01:13,560 --> 00:01:19,200
Heeft binnendiameter van de huidige gebruiker overeenkomen met de ID van de auteur van die camping.

14
00:01:19,440 --> 00:01:25,720
Dus vergeet niet dat dit is wat onze datastructuur eruit ziet waar we trek de camping model.

15
00:01:25,980 --> 00:01:53,700
We hebben auteur voor elke camping en er is een I.D. dat gaat om een ​​binnendiameter te zijn van een gebruiker verwijst naar een bepaalde gebruiker object I.D. en dan hebben we een gebruiker natuurlijk dat een object heeft I.D. Het is hier niet vermeld, maar iedere gebruiker heeft een binnendiameter en we gaan vergelijken met de momenteel ingelogde gebruikers I.D. naar de camping auteur dot ID, zodat we dat kunnen doen vrij gemakkelijk, als we omhoog gaan in ons ernaar.

16
00:01:53,700 --> 00:01:54,650
We zullen daar beginnen.

17
00:01:54,900 --> 00:02:01,970
En het eerste wat we willen doen is controle is iemand die de gebruiker ingelogd at all.

18
00:02:02,640 --> 00:02:07,550
En dan, als niet zullen we de zomer buigen.

19
00:02:08,430 --> 00:02:15,020
Als een gebruiker is ingelogd doet gebruiker eigenaar van de camping.

20
00:02:15,840 --> 00:02:24,900
En zo ja, laten we de gebruiker lopen deze code vind mijn ID en alles te verwijderen.

21
00:02:24,900 --> 00:02:27,420
Anders zullen we ook omleiden.

22
00:02:28,260 --> 00:02:33,020
Dus laten we vul deze in te gaan om te zien of iemand is ingelogd.

23
00:02:33,240 --> 00:02:39,020
We kunnen gewoon schrijven indien gewenst is geverifieerd.

24
00:02:39,300 --> 00:02:44,140
We kunnen ook het midden, waar we hier al gedefinieerd is aangemeld gebruiken.

25
00:02:44,250 --> 00:02:46,670
Ik zal je laten zien in een moment waarom we niet van plan om dat te doen.

26
00:02:46,680 --> 00:02:50,100
Het korte antwoord is dat we het definiëren van onze eigen middleware en maar een klein beetje.

27
00:02:50,160 --> 00:02:53,670
Dus we gaan naar die functionaliteit combineren in plaats van deze middleware.

28
00:02:53,670 --> 00:02:59,970
Dus als er een verzoek is geverifieerd als dat het geval is dan zijn we goed om te gaan.

29
00:02:59,970 --> 00:03:06,040
Als dat niet het geval laten we een constante log om te beginnen.

30
00:03:06,630 --> 00:03:14,850
Je moet ingelogd zijn om dat te doen en dan zullen we een antwoord te doen.

31
00:03:15,120 --> 00:03:21,480
En laten we gewoon een send om respons te beginnen sturen en wij zullen dit ook daadwerkelijk te sturen.

32
00:03:21,530 --> 00:03:26,710
Dus als we zien dat we weten dat we niet bent aangemeld en het eerste wat zal werken.

33
00:03:26,970 --> 00:03:35,750
Dus laten we kopieer deze code in de if en correct ingesprongen.

34
00:03:36,540 --> 00:03:37,190
OK.

35
00:03:37,380 --> 00:03:38,820
Dus we moeten ingelogd zijn.

36
00:03:38,970 --> 00:03:41,490
Dat is niets nieuws hebben we al geschreven code om dit te doen.

37
00:03:41,520 --> 00:03:44,900
Dus je zou kunnen denken waar ik ga over dit op een vreemde manier waarop we soort zijn.

38
00:03:44,910 --> 00:03:46,460
Maar je zult zien in slechts een moment waarom.

39
00:03:46,710 --> 00:03:48,150
Laten we eens testen het uit hoor.

40
00:03:48,280 --> 00:03:51,110
Save start de server op.

41
00:03:51,720 --> 00:03:54,300
En als ik opstart ik niet ingelogd.

42
00:03:54,300 --> 00:03:55,360
Niemand is ingelogd.

43
00:03:55,620 --> 00:04:03,530
Dus als ik probeer en ga naar slash ernaar vertelt het me moet je ingelogd zijn om dat te doen.

44
00:04:03,690 --> 00:04:06,730
Dus onze eerste deel werkt prima.

45
00:04:07,050 --> 00:04:13,770
Dan zodra we vergrendeld gaan we naar een andere verklaring hebben hier dat is waar het zal controleren.

46
00:04:13,770 --> 00:04:16,610
Heeft de gebruiker eigenaar van de camping.

47
00:04:17,700 --> 00:04:20,670
En de manier waarop we dat zullen doen is vrij eenvoudig.

48
00:04:20,670 --> 00:04:24,600
Het eerste wat we moeten doen is het vinden van de camping die we al hier heb gedaan.

49
00:04:25,050 --> 00:04:35,390
En toen we eenmaal vinden dat we nodig hebben om te controleren of de ID van de auteur op die camping overeenkomt met de huidige gebruiker, dat is vragen dat de gebruiker.

50
00:04:35,460 --> 00:04:37,170
Dan zijn we goed om te gaan.

51
00:04:37,170 --> 00:04:42,900
Dus de binnenkant van hier is waar we eigenlijk doen het doet de gebruiker op de camping.

52
00:04:43,080 --> 00:04:47,880
We zullen de eerste bit te houden om te controleren of er een fout als er geen fout was, dan zullen we controleren.

53
00:04:47,880 --> 00:05:01,980
Heeft een gebruiker op de camping, want dat betekent gevonden camping bestaat en dan zullen we moeten een if-statement en B als camping dot auteur ID als je zou denken dat we dit konden doen.

54
00:05:01,980 --> 00:05:03,170
Equals gelijk gelijken.

55
00:05:03,450 --> 00:05:07,940
Vraag die gebruiker dot onderstrepen ID.

56
00:05:07,950 --> 00:05:20,430
Dus laat me gewoon laten zien wat ik bedoel laten we een contact log camping auteur dacht id en dan onder het zal doen annuleren dat log verzoek dat de gebruiker doet onderstrepen ID.

57
00:05:20,520 --> 00:05:22,010
Dus een reactie uit de if statement.

58
00:05:22,320 --> 00:05:24,320
Dus we zullen die twee lijnen te zien.

59
00:05:25,730 --> 00:05:31,510
Ik zal aangemeld zijn natuurlijk als ik gewoon proberen en te vernieuwen op dit moment zonder ingelogd te zijn hebben we een fout hebben.

60
00:05:32,240 --> 00:05:46,350
Maar als ik meld heeft nu Potato Head log in en dan ga ik terug naar graniet mijne slash in.

61
00:05:46,610 --> 00:05:47,580
We hebben een probleem.

62
00:05:47,750 --> 00:05:49,950
Het lijkt erop dat laten we eens kijken.

63
00:05:50,300 --> 00:05:55,280
Nou dat was dom en proberen te annuleren als camping aan Arthur camping bestaat niet.

64
00:05:55,310 --> 00:05:57,130
Het is gevonden camping.

65
00:05:57,350 --> 00:06:01,450
Dus ik probeer het opnieuw de server opnieuw op te starten.

66
00:06:02,660 --> 00:06:04,430
Eerste keer dat we zijn vers.

67
00:06:04,730 --> 00:06:07,310
Je weet vertellen ons te plaatsen moet je ingelogd zijn nog steeds.

68
00:06:07,310 --> 00:06:11,810
Dus nogmaals we inloggen Potato Head.

69
00:06:11,810 --> 00:06:12,860
Wachtwoord.

70
00:06:13,270 --> 00:06:14,000
OK.

71
00:06:14,570 --> 00:06:21,050
Nu als ik probeer en krijgen een kijkje nemen op wat we hier te zien.

72
00:06:21,110 --> 00:06:23,370
Eerste ding dat drukken we er zo uitziet.

73
00:06:23,390 --> 00:06:31,650
Dus dat is gevonden camping Arthur ID en dan hebben we verzoeken die gebruikersgegevens I.D. en ze zien eruit als ze identiek zijn.

74
00:06:32,120 --> 00:06:34,370
En als ze uitgeprint ze zijn identiek.

75
00:06:34,370 --> 00:06:47,500
Maar achter de schermen zijn eigenlijk niet hetzelfde, dus verzoekt user id haar underscore ID is een string gevonden camping auteur dot-ID wordt een object is het een mangoest object.

76
00:06:47,510 --> 00:06:49,380
En dit is slechts een lastige.

77
00:06:49,710 --> 00:06:59,440
Ik vergeet het van tijd tot tijd het is echt frustrerend, want ze zien er hetzelfde uit als je probeert te debuggen, maar de waarheid is dat de eerste is niet echt een string is het een mangoest object.

78
00:06:59,540 --> 00:07:00,530
Die ene we uitgeprint.

79
00:07:00,530 --> 00:07:04,470
We zien een string, maar dat is nog maar de twee snaar versie.

80
00:07:04,490 --> 00:07:06,460
Achter de schermen is het niet een string.

81
00:07:06,740 --> 00:07:07,610
En dit is een string.

82
00:07:07,610 --> 00:07:09,750
Dus als we ze vergelijken zal het niet werken.

83
00:07:10,070 --> 00:07:19,200
Dus in plaats van ze te vergelijken met triple gelijken of dubbele gelijk wat kunnen we doen in plaats daarvan is het gebruik van een methode die mangoest geeft ons voor dit doel.

84
00:07:19,520 --> 00:07:23,180
Dus wat we doen is schrijven een if-statement in plaats zetten dan het controleren van campings.

85
00:07:23,210 --> 00:07:26,620
Auteur Dodd ID triple gelijken vragen bij gebruikers-ID.

86
00:07:26,870 --> 00:07:31,650
We maken gebruik van dot gelijk.

87
00:07:31,650 --> 00:07:33,070
Daar gaan we.

88
00:07:33,950 --> 00:07:43,000
En nu onze IF statement zou moeten werken, met uitzondering van het feit dat dit moet worden gevonden camping weer wat terug te komen naar de database die we vinden met behulp van die ID.

89
00:07:43,040 --> 00:07:54,530
Zo vinden we dat met het ID gebaseerd off van de route dan controleren we of de auteur ID op die gevonden camping is gelijk aan de op dat moment ingelogde gebruikers ID.

90
00:07:54,560 --> 00:07:57,090
Als dat het geval is zullen we één ding te doen.

91
00:07:57,230 --> 00:07:58,750
Anders zullen we iets anders doen.

92
00:07:58,760 --> 00:08:09,090
Dus als dat het geval is zullen we dit doen hier geef camping pagina van het bewerken van camping pagina met gevonden camping.

93
00:08:09,230 --> 00:08:11,320
Anders zullen we doen een rust heeft te sturen.

94
00:08:11,720 --> 00:08:22,520
Je hebt geen toestemming om dat te doen natuurlijk zal dit uiteindelijk veranderen of het zal niet alleen een rode stip cent zijn, maar we zullen een echte boodschap die wordt weergegeven te hebben.

95
00:08:22,520 --> 00:08:34,280
Dus laten we proberen om naar onze applicatie naar een show pagina eerste wat als ik probeer en bewerk het nu moet ik dan ingelogd zijn.

96
00:08:34,550 --> 00:08:49,070
Nu als ik inloggen of meld ik me aan als iemand anders dan Potato Head zo zal tomaat hoofd doen en ik probeer en bewerken die u ziet hopelijk.

97
00:08:49,100 --> 00:08:52,160
Daar gaan we Ik krijg je geen toestemming om dat te doen.

98
00:08:52,280 --> 00:09:05,730
Nu als we terug te gaan en uit te loggen en meld terug als Potato Head en probeer het allemaal weer probeer ik en bewerken.

99
00:09:06,020 --> 00:09:07,010
Ik heb wel toestemming.

100
00:09:07,040 --> 00:09:08,270
En ik uiteindelijk hier.

101
00:09:08,270 --> 00:09:09,420
Dus het werkt.

102
00:09:09,440 --> 00:09:10,750
Wat geweldig is.

103
00:09:10,880 --> 00:09:15,750
Nu, wat we zullen doen is eigenlijk dit refactorizar in een aparte functie.

104
00:09:15,800 --> 00:09:18,200
De meeste van deze logica zal iets noemen.

105
00:09:18,200 --> 00:09:29,030
Controleer gebruiker camping of ervoor te zorgen camping gebruiker iets waar we in principe de controle heeft de op dit moment ingelogde gebruiker wedstrijd deze bijzondere camping.

106
00:09:29,240 --> 00:09:34,050
En de reden dat we zullen verhuizen, die in middleware is dat we het zullen gebruiken op te bewerken.

107
00:09:34,190 --> 00:09:35,920
Ook willen we het te gebruiken op-update.

108
00:09:35,960 --> 00:09:39,110
We willen niet dat iemand in staat zijn om een ​​verzoek te sturen als ze niet ingelogd.

109
00:09:39,110 --> 00:09:41,890
Dus ook al weer gewoon via de browser.

110
00:09:42,050 --> 00:09:48,110
De enige manier om te doen eigenlijk visueel te krijgen om de update om gegevens te verzenden wordt met behulp van dit formulier.

111
00:09:48,350 --> 00:09:53,110
Je zou kunnen gebruiken postbode kon je een verzoek van postbode en niet worden geverifieerd.

112
00:09:53,120 --> 00:09:57,850
Daarom willen we dezelfde logica hier en we willen hetzelfde doen om te verwijderen.

113
00:09:57,920 --> 00:10:02,640
Dus we willen niet dat je in staat zijn om iets een camping verwijderen als u niet bent ingelogd.

114
00:10:02,690 --> 00:10:04,680
En als je niet de eigenaar van het.

115
00:10:04,970 --> 00:10:10,080
Dus wat we doen is schrijven een middleware we deze code nu te kopiëren.

116
00:10:10,220 --> 00:10:15,850
Ik zal het er maar we gaan naar beneden te gaan voor nu alleen met onze andere middleware.

117
00:10:15,920 --> 00:10:22,290
Nou, de laatste een zogenaamde check camping eigendom zomaar.

118
00:10:22,580 --> 00:10:25,380
En dan zullen we deze code te plakken en we zullen we een beetje werk te doen hier hebben.

119
00:10:25,670 --> 00:10:32,750
Maar het einddoel is dat op ons te bewerken moeten we in staat om onze middleware hier toevoegen controleren camping ownership.

120
00:10:32,750 --> 00:10:35,030
We moeten in staat zijn om het te doen werken.

121
00:10:35,050 --> 00:10:39,930
En ook op te verwijderen, maar we beginnen met het en wat we willen doen is te controleren.

122
00:10:39,930 --> 00:10:47,860
Eerst moet u toe te voegen in het verzoek van reactie en de volgende niet vergeten dat zo middleware is ingesteld verzoek response volgende.

123
00:10:47,870 --> 00:10:50,140
Dus als de gebruiker die momenteel is aangemeld.

124
00:10:50,330 --> 00:10:55,550
Blijf in beweging als ze je niet eerder ingelogd dan het doen van een rust ons te sturen.

125
00:10:55,760 --> 00:10:59,860
Voor nu gaan we naar een restaurant redirect doen en we hebben nog niet gezien.

126
00:10:59,990 --> 00:11:05,140
We kunnen doen roodstaart redirect terug en dat zal de gebruiker terug naar waar ze vandaan kwamen uit de meest nemen.

127
00:11:05,150 --> 00:11:10,440
De vorige pagina dat ze op en al snel gaan om u te laten zien hoe we een bericht kunnen sturen.

128
00:11:10,460 --> 00:11:19,010
Nou, de boodschap die we willen sturen is zoiets als Je bent niet ingelogd, of je moet worden toegestaan ​​om dat te doen, maar we zijn er vertrekken als dat voor nu.

129
00:11:19,010 --> 00:11:22,310
Dan, als ze ingelogd bent gaan we naar de camping te vinden.

130
00:11:22,610 --> 00:11:26,420
Als er een fout zullen we net redirect ook terug.

131
00:11:26,420 --> 00:11:41,690
Ook dit fout zou gebeuren als de camping niet kon worden gevonden om wat voor reden of als de database niet is aangesloten of is een rare ding meestal dat we eigenlijk niet zouden zien anders als de camping overeenkomt met de verzoeken gebruikers-ID.

132
00:11:41,690 --> 00:11:57,010
Dus als de gebruiker die is net als in bezit dit dan in plaats van rendering campings bewerken omdat we niet altijd willen deze middleware te bewerken maken wat we willen doen is door naar de rest van de code in het verwijderen of verplaatsen naar de code een update of een bewerking.

133
00:11:57,020 --> 00:12:00,870
Dus dat is waar we gaan doen.

134
00:12:00,910 --> 00:12:08,510
Anders als ze niet zelf het zal we een rez redirect terug te doen.

135
00:12:08,510 --> 00:12:09,330
Grote.

136
00:12:09,410 --> 00:12:16,200
Dus laten we proberen dit uit te slaan en we zullen een update gaan onze bewerken route hier.

137
00:12:16,310 --> 00:12:38,390
We kunnen dit trim van veel dus we hebben geen behoefte aan een van dit te doen echt, behalve voor we willen naar de camping en alles wat we doen is als we een camping vinden we niet nodig om te controleren of het te vinden wedstrijden meer, omdat we dat doen in het midden, waar dus alles wat we willen doen is het vinden van een camping kan ontdoen van dit alles.

138
00:12:38,510 --> 00:12:48,550
Bijna alle Office-formaat dit juist zo zal een klein beetje.

139
00:12:48,550 --> 00:12:49,840
Daar gaan we.

140
00:12:50,690 --> 00:13:02,800
Dus omdat we Scheck's camping eigendom tarief hier toegevoegd alles wat we nu doen is als we op dit punt betekent dat we al camping eigendom gecontroleerd en dat we het door.

141
00:13:03,230 --> 00:13:18,440
Anders als er een probleem is dat we zouden hebben omgeleid dat zien met de fout die ik krijg is dat we hebben een klein syntax fout hier dat ik een of andere manier verwijderd mijn functie verklaring hier en je kunt zien dat het klagen dat we niet de fout bent hanteren die we kunnen omgaan.

142
00:13:18,440 --> 00:13:25,690
Maar het ding is als we op dit punt is er geen fout bij het vinden van PI ID, omdat we deden het hier beneden zou moeten zijn.

143
00:13:25,990 --> 00:13:29,370
En als het hier werkt dan moeten we goed zijn om toch te gaan.

144
00:13:29,390 --> 00:13:33,590
Dus laten we proberen het toch uit te zien als we nog problemen.

145
00:13:33,620 --> 00:13:36,610
In principe we net verhuisd onze code uit in een aparte functie.

146
00:13:37,040 --> 00:13:41,650
En vergeet niet een middleware heet Voordat we naar de juiste handler.

147
00:13:42,140 --> 00:13:42,530
OK.

148
00:13:42,560 --> 00:13:43,980
Dus laten we geven het een schot.

149
00:13:44,120 --> 00:13:49,270
Het eerste wat laten we teruggaan en laten we zeggen te proberen en klik op Bewerken.

150
00:13:49,280 --> 00:13:51,910
Ik ben niet ingelogd.
