1
00:00:00,210 --> 00:00:03,550
Bentornati in questa lezione vedremo del nuovo materiale divertente.

2
00:00:03,600 --> 00:00:09,240
Combineremo il nostro modello utente con l'autenticazione che abbiamo coperto con i campeggi per assicurarci che un utente non

3
00:00:09,240 --> 00:00:14,640
possa cancellare il campeggio che non ha creato o un utente non può modificare un campeggio che lui

4
00:00:14,640 --> 00:00:15,980
o lei non ha creato.

5
00:00:16,200 --> 00:00:18,450
E questo è qualcosa chiamato autorizzazione.

6
00:00:18,600 --> 00:00:25,830
Quindi l'autenticazione e l'autorizzazione sono diverse per autenticazione si intende scoprire se qualcuno è chi

7
00:00:25,830 --> 00:00:27,190
dicono di essere.

8
00:00:27,450 --> 00:00:30,780
Bene, l'autorizzazione è una volta che sai chi è qualcuno.

9
00:00:30,810 --> 00:00:33,090
Capisci cosa possono fare.

10
00:00:33,090 --> 00:00:34,840
Quindi pensaci come permessi.

11
00:00:35,040 --> 00:00:40,500
Cosa può fare qualcuno con ciò che è autorizzato a fare con la loro autorizzazione di sicurezza nella nostra applicazione.

12
00:00:41,190 --> 00:00:47,220
Quindi se non possiedi un campeggio se non hai lo stesso io. D. come autore del campeggio, non

13
00:00:47,220 --> 00:00:49,710
sarai in grado di aggiornarlo o cancellarlo.

14
00:00:49,980 --> 00:00:56,790
Cominciamo in modo semplice e lavoriamo con esso in modo tale che non puoi darti il ​​modulo di modifica a meno che

15
00:00:56,940 --> 00:00:58,270
non possiedi il campeggio.

16
00:00:58,290 --> 00:01:01,970
Quindi andiamo alle nostre rotte del campeggio proprio qui.

17
00:01:02,400 --> 00:01:08,880
E quello che vogliamo fare è se provi ad andare al percorso del campeggio o ad aggiornare ed

18
00:01:08,880 --> 00:01:13,400
eventualmente eliminare tutti e tre, dobbiamo avere la stessa logica in cui controlliamo.

19
00:01:13,560 --> 00:01:19,200
L'attuale utente I. D. abbinare l'ID dell'autore per quel campeggio.

20
00:01:19,440 --> 00:01:25,720
Quindi ricorda che questo è come appare la nostra struttura dati dove tiriamo su il modello del campeggio.

21
00:01:25,980 --> 00:01:32,790
Abbiamo un autore per ogni campeggio e c'è un I. D. sarà un I. D. per un utente fa riferimento

22
00:01:32,790 --> 00:01:40,230
a un particolare oggetto dell'utente I. D. e poi abbiamo un utente, ovviamente, che ha un oggetto I. D. Non è specificato qui ma

23
00:01:40,230 --> 00:01:46,350
ogni utente ha un I. D. e stiamo andando a confrontare gli utenti attualmente registrati I. D. all'autore del

24
00:01:46,350 --> 00:01:53,700
punto ID del campeggio, quindi possiamo farlo abbastanza facilmente se ci avviciniamo al nostro.

25
00:01:53,700 --> 00:01:54,650
Inizieremo da lì.

26
00:01:54,900 --> 00:02:01,970
E la prima cosa che vogliamo fare è controllare qualcuno che abbia effettuato l'accesso.

27
00:02:02,640 --> 00:02:07,550
E se no, reindirizzeremo l'estate.

28
00:02:08,430 --> 00:02:15,020
Se un utente ha effettuato l'accesso, l'utente possiede il campeggio.

29
00:02:15,840 --> 00:02:24,900
E in tal caso lasceremo che l'utente esegua questo codice per trovare il mio ID ed eliminare tutto.

30
00:02:24,900 --> 00:02:27,420
Altrimenti reindirizzeremo anche.

31
00:02:28,260 --> 00:02:33,020
Quindi riempiamo questo per iniziare a vedere se qualcuno ha effettuato l'accesso.

32
00:02:33,240 --> 00:02:39,020
Possiamo semplicemente scrivere se richiesto è autenticato.

33
00:02:39,300 --> 00:02:44,140
Potremmo anche usare il mezzo in cui abbiamo già definito qui l'accesso.

34
00:02:44,250 --> 00:02:46,670
Ti mostrerò in un momento perché non lo faremo.

35
00:02:46,680 --> 00:02:50,100
La risposta breve è che stiamo definendo il nostro middleware e solo un po '.

36
00:02:50,160 --> 00:02:53,670
Quindi combineremo questa funzionalità al posto di questo middleware.

37
00:02:53,670 --> 00:02:59,970
Quindi se una richiesta viene autenticata, se è così, allora siamo a posto.

38
00:02:59,970 --> 00:03:06,040
Se non è il caso, facciamo un log costante per iniziare.

39
00:03:06,630 --> 00:03:14,850
Devi effettuare il login per farlo e poi faremo una risposta.

40
00:03:15,120 --> 00:03:21,480
E facciamo solo un invio per iniziare la risposta e manderemo questo in realtà.

41
00:03:21,530 --> 00:03:26,710
Quindi, se vediamo che sapremo che non siamo loggati e la prima cosa funzionerà.

42
00:03:26,970 --> 00:03:35,750
Quindi copiamo questo codice all'interno dell'istruzione if e indentato correttamente.

43
00:03:36,540 --> 00:03:37,190
OK.

44
00:03:37,380 --> 00:03:38,820
Quindi dobbiamo essere loggati.

45
00:03:38,970 --> 00:03:41,490
Quale non è nulla di nuovo, abbiamo già scritto codice per farlo.

46
00:03:41,520 --> 00:03:44,900
Quindi potresti pensare a dove sto andando in questo modo in un modo strano che siamo in qualche modo.

47
00:03:44,910 --> 00:03:46,460
Ma vedrai tra un istante perché.

48
00:03:46,710 --> 00:03:48,150
Proviamoci però.

49
00:03:48,280 --> 00:03:51,110
Salva avvia il server.

50
00:03:51,720 --> 00:03:54,300
E quando avvio non sono loggato.

51
00:03:54,300 --> 00:03:55,360
Nessuno è loggato

52
00:03:55,620 --> 00:03:57,900
Quindi se provo ad andare a tagliarlo, mi

53
00:04:01,380 --> 00:04:03,530
dice che devi essere loggato per farlo.

54
00:04:03,690 --> 00:04:06,730
Quindi la nostra prima parte sta funzionando bene.

55
00:04:07,050 --> 00:04:12,990
Poi, una volta che siamo bloccati, avremo un'altra dichiarazione qui che è dove controllerà.

56
00:04:13,770 --> 00:04:16,610
L'utente possiede il campeggio.

57
00:04:17,700 --> 00:04:20,670
E il modo in cui lo faremo sarà piuttosto semplice.

58
00:04:20,670 --> 00:04:24,600
La prima cosa che dobbiamo fare è trovare il campeggio che abbiamo già fatto qui.

59
00:04:25,050 --> 00:04:32,580
E poi, una volta trovato, dobbiamo verificare se l'ID dell'autore su quel campeggio corrisponde

60
00:04:32,580 --> 00:04:35,390
all'utente corrente che richiede quell'utente.

61
00:04:35,460 --> 00:04:37,170
Allora siamo a posto.

62
00:04:37,170 --> 00:04:42,900
Quindi all'interno di qui è dove facciamo effettivamente l'utente del campeggio.

63
00:04:43,080 --> 00:04:47,880
Terremo il primo bit per verificare se c'è un errore se non ci sono errori, quindi controlleremo.

64
00:04:47,880 --> 00:04:54,030
e B se l'ID autore del punto campground come si potrebbe pensare che potremmo fare questo.

65
00:04:54,650 --> 00:05:01,980
Fa un utente sul campeggio perché ciò significa che esiste un campeggio e quindi avremo una dichiarazione if

66
00:05:01,980 --> 00:05:03,170
È uguale a uguale a

67
00:05:03,450 --> 00:05:07,940
Richiedi l'ID di sottolineatura del punto utente.

68
00:05:07,950 --> 00:05:16,290
Quindi lascia che ti mostri solo cosa intendo, facciamo un id di pensiero dell'autore del campo di log di contatto e poi di

69
00:05:16,290 --> 00:05:20,430
seguito cancelleremo quella richiesta di log che l'utente esegue l'underscore ID.

70
00:05:20,520 --> 00:05:22,010
Quindi commenta la dichiarazione if.

71
00:05:22,320 --> 00:05:24,320
Quindi vedremo queste due linee.

72
00:05:25,730 --> 00:05:30,530
login, naturalmente, se cerco di aggiornarmi adesso senza essere loggato, abbiamo un errore.

73
00:05:30,530 --> 00:05:31,510
Dovrò effettuare il

74
00:05:32,240 --> 00:05:36,800
Ma se effettuo il login ora ho

75
00:05:40,190 --> 00:05:46,350
accesso a Potato Head e poi torno al granito.

76
00:05:46,610 --> 00:05:47,580
Abbiamo un problema.

77
00:05:47,750 --> 00:05:49,950
Sembra che vediamo.

78
00:05:50,300 --> 00:05:55,280
Beh, quello era sciocco e cercare di cancellare come il campeggio al campeggio Arthur non esiste.

79
00:05:55,310 --> 00:05:57,130
È stato trovato campeggio.

80
00:05:57,350 --> 00:06:01,450
Quindi proverò di nuovo riavviare il server.

81
00:06:02,660 --> 00:06:04,430
La prima volta siamo freschi.

82
00:06:04,730 --> 00:06:07,310
Sai dirci che devi essere loggato ancora.

83
00:06:07,310 --> 00:06:11,810
Quindi di nuovo ci colleghiamo a Potato Head.

84
00:06:11,810 --> 00:06:12,860
Parola d'ordine.

85
00:06:13,270 --> 00:06:14,000
OK.

86
00:06:14,570 --> 00:06:15,650
Ora se provo a

87
00:06:18,710 --> 00:06:21,050
farlo, dai un'occhiata a ciò che vediamo qui.

88
00:06:21,110 --> 00:06:23,370
La prima cosa che stampiamo assomiglia a questo.

89
00:06:23,390 --> 00:06:30,530
In questo modo viene trovato il campo Arthur ID e quindi abbiamo richiesto che i dati dell'utente I. D. e sembrano

90
00:06:30,590 --> 00:06:31,650
identici.

91
00:06:32,120 --> 00:06:34,370
E quando vengono stampati sono identici.

92
00:06:34,370 --> 00:06:42,140
Ma dietro le quinte non sono in realtà la stessa cosa quindi richiede che id utente il suo ID di sottolineatura è

93
00:06:42,680 --> 00:06:47,500
una stringa trovata autore campo ID punto è un oggetto è un oggetto mangusta.

94
00:06:47,510 --> 00:06:49,380
E questo è solo un problema.

95
00:06:49,710 --> 00:06:54,080
Mi dimentico di tanto in tanto è davvero frustrante perché sembrano uguali quando si tenta di

96
00:06:54,080 --> 00:06:59,440
eseguire il debug ma la verità è che il primo non è in realtà una stringa, è un oggetto mangusta.

97
00:06:59,540 --> 00:07:00,530
Quello che abbiamo stampato.

98
00:07:00,530 --> 00:07:04,470
Vediamo una stringa ma questa è solo la versione a due corde.

99
00:07:04,490 --> 00:07:06,460
Dietro le quinte non è una stringa.

100
00:07:06,740 --> 00:07:07,610
E questa è una stringa.

101
00:07:07,610 --> 00:07:09,750
Quindi quando li confrontiamo non funzionerà.

102
00:07:10,070 --> 00:07:16,190
Quindi piuttosto che confrontarli con triple equals o double equals, invece, quello che possiamo fare è usare un

103
00:07:16,610 --> 00:07:19,200
metodo che mangusta ci dà per questo scopo.

104
00:07:19,520 --> 00:07:23,180
Quindi quello che facciamo è scrivere un'istruzione IF piuttosto che controllare i campeggi.

105
00:07:23,210 --> 00:07:26,620
L'ID autore Dodd triplica la richiesta all'ID utente.

106
00:07:26,870 --> 00:07:31,650
Usiamo dot equals.

107
00:07:31,650 --> 00:07:33,070
Eccoci.

108
00:07:33,950 --> 00:07:39,710
E ora la nostra dichiarazione IF dovrebbe funzionare, tranne per il fatto che questo deve essere trovato di nuovo in

109
00:07:39,810 --> 00:07:43,000
campeggio, cosa sta tornando al database che stiamo trovando usando quell'ID.

110
00:07:43,040 --> 00:07:50,240
Quindi scopriamo che con l'ID basato sulla rotta, controlliamo se l'ID autore su quel

111
00:07:50,240 --> 00:07:54,530
particolare campeggio trovato è uguale all'ID utente attualmente connesso.

112
00:07:54,560 --> 00:07:57,090
Se è così, faremo una cosa.

113
00:07:57,230 --> 00:07:58,750
Altrimenti faremo qualcos'altro.

114
00:07:58,760 --> 00:08:08,420
Quindi, se questo è il caso, faremo qui la pagina del campeggio di rendering della pagina del campeggio di modifica con il

115
00:08:08,420 --> 00:08:09,090
campeggio trovato.

116
00:08:09,230 --> 00:08:11,320
Altrimenti faremo una pausa mandare.

117
00:08:11,720 --> 00:08:19,320
Non hai il permesso di farlo, naturalmente questo alla fine cambierà o non sarà solo un punto rosso,

118
00:08:19,330 --> 00:08:22,520
ma avremo un messaggio reale che verrà visualizzato.

119
00:08:22,520 --> 00:08:23,330
ad andare

120
00:08:26,390 --> 00:08:33,470
alla nostra applicazione per andare alla pagina di uno spettacolo, per prima cosa se provo a modificarla adesso devo essere loggato.

121
00:08:33,470 --> 00:08:34,280
Quindi proviamo

122
00:08:34,550 --> 00:08:40,910
Ora, se accedo o mi iscrivo come qualcuno diverso da Potato Head, farò la

123
00:08:43,700 --> 00:08:49,070
testa di pomodoro e cerco di modificare ciò che vedrai con speranza.

124
00:08:49,100 --> 00:08:52,160
Eccoci, non ti ho il permesso di farlo.

125
00:08:52,280 --> 00:08:58,010
Ora se torniamo indietro e ci disconnettiamo come Potato Head

126
00:09:01,370 --> 00:09:05,730
e proviamo di nuovo tutto, provo a modificare.

127
00:09:06,020 --> 00:09:07,010
Ho il permesso.

128
00:09:07,040 --> 00:09:08,270
E finisco qui.

129
00:09:08,270 --> 00:09:09,420
Quindi sta funzionando.

130
00:09:09,440 --> 00:09:10,750
Che è grandioso.

131
00:09:10,880 --> 00:09:15,750
Ora quello che faremo è in realtà il refactoring in una funzione separata.

132
00:09:15,800 --> 00:09:18,200
Gran parte di questa logica la chiamerà qualcosa di simile.

133
00:09:18,200 --> 00:09:26,060
Controlla il campeggio dell'utente o assicurati che l'utente del campeggio stia verificando che l'utente attualmente

134
00:09:26,060 --> 00:09:29,030
connesso corrisponda a questo campeggio specifico.

135
00:09:29,240 --> 00:09:34,050
E il motivo per cui lo sposteremo nel middleware è che lo useremo in edit.

136
00:09:34,190 --> 00:09:35,920
Vogliamo anche usarlo in aggiornamento.

137
00:09:35,960 --> 00:09:39,110
Non vogliamo che qualcuno sia in grado di inviare una richiesta se non ha effettuato l'accesso.

138
00:09:39,110 --> 00:09:41,890
Quindi, anche se di nuovo solo usando il browser.

139
00:09:42,050 --> 00:09:48,110
L'unico modo per ottenere visivamente l'aggiornamento per inviare dati è l'utilizzo di questo modulo.

140
00:09:48,350 --> 00:09:53,110
Potresti usare il postino per inviare una richiesta dal postino e non essere autenticato.

141
00:09:53,120 --> 00:09:57,850
Quindi vogliamo la stessa logica qui e vogliamo fare la stessa cosa per eliminare.

142
00:09:57,920 --> 00:10:02,640
Quindi non vogliamo che tu sia in grado di cancellare qualcosa di un campeggio se non hai effettuato l'accesso.

143
00:10:02,690 --> 00:10:04,680
E se non lo possiedi.

144
00:10:04,970 --> 00:10:10,080
Quindi quello che faremo è scrivere un middleware che copieremo questo codice per ora.

145
00:10:10,220 --> 00:10:15,850
Lascerò lì ma ora andremo giù solo con gli altri middleware.

146
00:10:15,920 --> 00:10:22,290
Bene, l'ultimo ha chiamato la proprietà del campeggio assegno proprio così.

147
00:10:22,580 --> 00:10:25,380
E poi incolleremo questo codice e avremo un piccolo lavoro da fare qui.

148
00:10:25,670 --> 00:10:31,940
Ma l'obiettivo finale è che nella nostra modifica dovremmo essere in grado di aggiungere il nostro middleware qui controllare la proprietà del campeggio.

149
00:10:32,750 --> 00:10:35,030
Dovremmo essere in grado di farlo aggiornare.

150
00:10:35,050 --> 00:10:39,930
E anche su delete ma inizieremo con esso e quello che vogliamo fare è controllare.

151
00:10:39,930 --> 00:10:47,030
Per prima cosa è necessario aggiungere la risposta alla richiesta e successivamente ricordare che il middleware è impostato per la risposta alla

152
00:10:47,060 --> 00:10:47,860
richiesta successiva.

153
00:10:47,870 --> 00:10:50,140
Quindi se l'utente è attualmente loggato.

154
00:10:50,330 --> 00:10:55,550
Continua a muoverti se non hai effettuato il login, piuttosto che fare una pausa, mandaci.

155
00:10:55,760 --> 00:10:59,860
Per ora faremo un reindirizzamento di ristoranti e non abbiamo ancora visto questo.

156
00:10:59,990 --> 00:11:05,140
Possiamo eseguire il reindirizzamento verso il redstart e questo porterà l'utente indietro nel punto da cui è venuto.

157
00:11:05,150 --> 00:11:10,440
La pagina precedente in cui si trovavano e molto presto mostrerà come possiamo inviare un messaggio.

158
00:11:10,460 --> 00:11:16,010
Bene, il messaggio che vogliamo inviare è qualcosa di simile Non hai effettuato l'accesso o devi essere

159
00:11:16,010 --> 00:11:19,010
autorizzato a farlo, ma per ora lo lasciamo così.

160
00:11:19,010 --> 00:11:22,310
Quindi, se sono collegati, troveremo il campeggio.

161
00:11:22,610 --> 00:11:26,420
Se si verifica un errore, ti reindirizzeremo anche di nuovo.

162
00:11:26,420 --> 00:11:31,630
Ancora una volta questo errore si verifica se il campeggio non può essere trovato per

163
00:11:31,630 --> 00:11:39,440
qualche motivo o se il database non è collegato o è una cosa strana in genere che in realtà non vedremmo altro se

164
00:11:39,560 --> 00:11:41,690
il campeggio corrisponde all'ID utente delle richieste.

165
00:11:41,690 --> 00:11:47,480
Quindi, se l'utente che è come proprietario di questo, invece di eseguire il rendering dei campeggi perché

166
00:11:47,480 --> 00:11:53,530
non vogliamo sempre che questo middleware esegua il rendering, ciò che vogliamo è passare al resto del codice

167
00:11:53,550 --> 00:11:57,010
in delete o passare al codice un aggiornamento o una modifica.

168
00:11:57,020 --> 00:12:00,870
Quindi è qui che faremo.

169
00:12:00,910 --> 00:12:08,510
Altrimenti se non lo possiedono faremo un reind reindirizzamento.

170
00:12:08,510 --> 00:12:09,330
Grande.

171
00:12:09,410 --> 00:12:16,200
Quindi proviamo a salvarlo e faremo un aggiornamento del nostro percorso di modifica qui.

172
00:12:16,310 --> 00:12:23,180
Possiamo sistemarlo molto, quindi non abbiamo bisogno di fare nulla di tutto questo eccetto per il fatto che vogliamo

173
00:12:23,180 --> 00:12:31,370
trovare il campeggio e tutto ciò che faremo se troveremo un campeggio non è necessario controllarlo partite più perché lo stiamo facendo nel

174
00:12:31,370 --> 00:12:37,220
mezzo in cui così tutto ciò che vogliamo fare è trovare un campeggio in grado di

175
00:12:37,220 --> 00:12:38,390
sbarazzarsi di tutto questo.

176
00:12:38,510 --> 00:12:39,320
'.

177
00:12:42,770 --> 00:12:48,550
Quasi tutto il formato Office è corretto, quindi uscirà un po

178
00:12:48,550 --> 00:12:49,840
Eccoci.

179
00:12:50,690 --> 00:12:57,290
Quindi, poiché abbiamo aggiunto il tasso di proprietà del campeggio di Scheck, qui tutto ciò che stiamo facendo ora è se

180
00:12:57,290 --> 00:13:02,800
arrivassimo a questo punto significa che abbiamo già controllato la proprietà del campeggio e che ce l'abbiamo fatta.

181
00:13:03,230 --> 00:13:08,030
Altrimenti se ci fosse un problema verremmo reindirizzati che vediamo con l'errore che sto ottenendo

182
00:13:08,030 --> 00:13:14,970
è un piccolo errore di sintassi qui che in qualche modo ho cancellato la mia dichiarazione di funzione qui e puoi vedere

183
00:13:14,990 --> 00:13:18,440
che si lamenta che non stiamo gestendo l'errore che potremmo gestire

184
00:13:18,440 --> 00:13:24,350
se arriviamo a questo punto non ci dovrebbe essere un errore nel trovare l'ID PI perché lo abbiamo fatto qui.

185
00:13:24,350 --> 00:13:25,690
Ma la cosa è che

186
00:13:25,990 --> 00:13:29,370
E se funziona qui, allora dovremmo essere bravi ad andare comunque.

187
00:13:29,390 --> 00:13:33,590
Quindi proviamo a vedere se abbiamo problemi.

188
00:13:33,620 --> 00:13:36,610
Fondamentalmente abbiamo semplicemente spostato il nostro codice in una funzione separata.

189
00:13:37,040 --> 00:13:41,650
E ricorda che viene chiamato un middleware Prima di arrivare al giusto handler.

190
00:13:42,140 --> 00:13:42,530
OK.

191
00:13:42,560 --> 00:13:43,980
Quindi facciamo un tentativo.

192
00:13:44,120 --> 00:13:49,270
Per prima cosa torniamo indietro e diciamo prova e clicca su modifica.

193
00:13:49,280 --> 00:13:51,910
Non ho effettuato l'accesso.

194
00:13:51,950 --> 00:13:54,170
Dovrebbe reindirizzare a me dov'ero
