1
00:00:00,210 --> 00:00:03,550
Bienvenue dans cette leçon, nous allons voir du nouveau matériel amusant.

2
00:00:03,600 --> 00:00:15,980
Nous allons combiner notre modèle d'utilisateur l'authentification que nous avons couverte avec les terrains de camping pour s'assurer qu'un utilisateur ne peut pas supprimer le terrain de camping qu'il n'a pas créé ou qu'un utilisateur ne peut pas éditer un terrain de camping qu'il ou elle N'a pas créé.

3
00:00:16,200 --> 00:00:18,450
Et c'est quelque chose qu'on appelle autorisation.

4
00:00:18,600 --> 00:00:27,190
Donc, l'authentification et l'autorisation, il ya une authentification différente se réfère à savoir si quelqu'un est qui ils disent qu'ils sont.

5
00:00:27,450 --> 00:00:30,780
L'autorisation est une fois que vous savez qui est quelqu'un.

6
00:00:30,810 --> 00:00:33,090
Vous voyez ce qu'ils sont autorisés à faire.

7
00:00:33,090 --> 00:00:34,840
Alors pensez-y comme des permissions.

8
00:00:35,040 --> 00:00:41,190
Qu'est-ce que quelqu'un peut faire ce que quelqu'un est autorisé à faire avec son autorisation de sécurité dans notre application.

9
00:00:41,190 --> 00:00:49,710
Donc, si vous ne possédez pas un terrain de camping si vous n'avez pas le même I.D. Comme l'auteur des terrains de camping que vous ne serez pas en mesure de mettre à jour ou de supprimer.

10
00:00:49,980 --> 00:00:58,270
Commençons donc simple et travaillons avec lui de sorte que vous ne pouvez pas vous donner la forme d'édition à moins que vous possédiez le terrain de camping.

11
00:00:58,290 --> 00:01:01,970
Alors allons à nos routes de camping ici.

12
00:01:02,400 --> 00:01:13,400
Et ce que nous voulons faire est si vous essayez et allez à la route de terrain de camping ou mettez à jour et finalement effacez aussi tous les trois d'entre eux nous devons avoir la même logique où nous vérifions juste.

13
00:01:13,560 --> 00:01:19,200
Est-ce que l'utilisateur actuel ID. Correspondre à l'ID de l'auteur pour ce terrain de camping.

14
00:01:19,440 --> 00:01:25,720
Donc, souvenez-vous que c'est ce que ressemble notre structure de données où nous tirer le modèle de terrain de camping.

15
00:01:25,980 --> 00:01:53,700
Nous avons l'auteur pour chaque terrain de camping et il ya un I.D. Ça va être un I.D. Pour un utilisateur il référence l'objet d'un utilisateur particulier I.D. Et alors nous avons un utilisateur bien sûr qui a un objet I.D. Il n'est pas spécifié ici, mais chaque utilisateur a un I.D. Et nous allons comparer les utilisateurs actuellement connectés I.D. À l'ID de terrain de camping autorisé afin que nous puissions faire assez facilement si nous montons dans notre à elle.

16
00:01:53,700 --> 00:01:54,650
Nous allons commencer par là.

17
00:01:54,900 --> 00:02:01,970
Et la première chose que nous voulons faire est de vérifier est quelqu'un qui est utilisateur connecté à tous.

18
00:02:02,640 --> 00:02:07,550
Et puis, sinon, nous redirigerons l'été.

19
00:02:08,430 --> 00:02:15,020
Si un utilisateur est connecté, l'utilisateur possède le terrain de camping.

20
00:02:15,840 --> 00:02:24,900
Et si oui, nous allons laisser l'utilisateur exécuter ce code trouver mon ID et supprimer tout.

21
00:02:24,900 --> 00:02:27,420
Sinon, nous redirigerons également.

22
00:02:28,260 --> 00:02:33,020
Donc, nous allons remplir ce pour commencer à voir si quelqu'un est connecté.

23
00:02:33,240 --> 00:02:39,020
Nous pouvons simplement écrire si demandé est authentifié.

24
00:02:39,300 --> 00:02:44,140
Nous pourrions également utiliser le milieu où nous avons déjà défini ici est connecté.

25
00:02:44,250 --> 00:02:46,670
Je vais vous montrer dans un instant pourquoi nous ne ferons pas cela.

26
00:02:46,680 --> 00:02:50,100
La réponse courte est que nous définissons notre propre middleware et juste un peu.

27
00:02:50,160 --> 00:02:53,670
Nous allons donc combiner cette fonctionnalité à la place de ce middleware.

28
00:02:53,670 --> 00:02:59,970
Donc, si une demande est authentifiée si c'est le cas, alors nous sommes prêts à y aller.

29
00:02:59,970 --> 00:03:06,040
Si ce n'est pas le cas, nous allons faire un journal constant pour commencer.

30
00:03:06,630 --> 00:03:14,850
Vous devez être connecté pour faire cela et ensuite nous allons faire une réponse.

31
00:03:15,120 --> 00:03:21,480
Et faisons juste un envoyer pour commencer la réponse envoyez et nous l'enverrons ceci effectivement.

32
00:03:21,530 --> 00:03:26,710
Donc, si nous voyons que nous saurons que nous ne sommes pas connectés et que la première chose fonctionnera.

33
00:03:26,970 --> 00:03:35,750
Alors copions ce code à l'intérieur de l'instruction if et indenté correctement.

34
00:03:36,540 --> 00:03:37,190
D'ACCORD.

35
00:03:37,380 --> 00:03:38,820
Nous devons donc vous connecter.

36
00:03:38,970 --> 00:03:41,490
Ce qui n'est pas nouveau, nous avons déjà écrit le code pour ce faire.

37
00:03:41,520 --> 00:03:44,900
Donc, vous pourriez penser où je vais à ce sujet d'une manière bizarre que nous sommes en quelque sorte.

38
00:03:44,910 --> 00:03:46,460
Mais vous verrez dans un instant pourquoi.

39
00:03:46,710 --> 00:03:48,150
Testez-le cependant.

40
00:03:48,280 --> 00:03:51,110
Sauvegarder le serveur.

41
00:03:51,720 --> 00:03:54,300
Et quand je démarre, je ne suis pas connecté.

42
00:03:54,300 --> 00:03:55,360
Personne n'est connecté.

43
00:03:55,620 --> 00:04:03,530
Donc, si j'essaie d'aller à slash à elle il me dit que vous devez être connecté pour le faire.

44
00:04:03,690 --> 00:04:06,730
Donc, notre première partie fonctionne très bien.

45
00:04:07,050 --> 00:04:13,770
Ensuite, une fois que nous serons enfermés, nous allons avoir une autre déclaration ici qui est où elle va vérifier.

46
00:04:13,770 --> 00:04:16,610
L'utilisateur possède-t-il le terrain de camping?

47
00:04:17,700 --> 00:04:20,670
Et la façon dont nous allons faire cela est assez simple.

48
00:04:20,670 --> 00:04:24,600
La première chose que nous devons faire est de trouver le terrain de camping que nous avons déjà fait ici.

49
00:04:25,050 --> 00:04:35,390
Et puis une fois que nous le trouvons, nous devons vérifier si l'ID de l'auteur sur ce terrain de camping correspond à l'utilisateur actuel qui est la demande de cet utilisateur.

50
00:04:35,460 --> 00:04:37,170
Alors nous sommes prêts à partir.

51
00:04:37,170 --> 00:04:42,900
Ainsi à l'intérieur d'ici est où nous faisons réellement le fait l'utilisateur sur le terrain de camping.

52
00:04:43,080 --> 00:04:47,880
Nous allons garder le premier bit pour vérifier s'il y a une erreur s'il n'y a pas d'erreur alors nous allons vérifier.

53
00:04:47,880 --> 00:05:01,980
Est-ce qu'un utilisateur sur le terrain de camping parce que cela signifie trouvé terrain de camping existe et puis nous aurons une instruction si et B si campground dot ID d'auteur comme vous pourriez penser que nous pourrions faire ceci.

54
00:05:01,980 --> 00:05:03,170
Equals est égal à égal.

55
00:05:03,450 --> 00:05:07,940
Demandez à cet utilisateur l'ID de soulignement point.

56
00:05:07,950 --> 00:05:20,430
Permettez-moi juste de vous montrer ce que je veux dire, nous allons faire un journal de contact journal camp pensée id et puis ci-dessous, il va annuler cette demande de journal que l'utilisateur ne underscore ID.

57
00:05:20,520 --> 00:05:22,010
Donc, un commentaire sur la déclaration if.

58
00:05:22,320 --> 00:05:24,320
Nous verrons donc ces deux lignes.

59
00:05:25,730 --> 00:05:31,510
Je devrai être connecté, bien sûr, si je viens d'essayer de rafraîchir en ce moment sans être connecté, nous avons une erreur.

60
00:05:32,240 --> 00:05:46,350
Mais si je me connecte maintenant a la tête de pomme de terre se connecter et puis je retourne à la barre de mine de granit à elle.

61
00:05:46,610 --> 00:05:47,580
Nous avons un problème.

62
00:05:47,750 --> 00:05:49,950
On dirait que nous allons voir.

63
00:05:50,300 --> 00:05:55,280
Eh bien, c'était stupide et essayer d'annuler comme le camping au camping Arthur n'existe pas.

64
00:05:55,310 --> 00:05:57,130
Il a trouvé un terrain de camping.

65
00:05:57,350 --> 00:06:01,450
Alors je vais essayer de redémarrer le serveur.

66
00:06:02,660 --> 00:06:04,430
Première fois que nous sommes frais.

67
00:06:04,730 --> 00:06:07,310
Vous savez nous dire que vous devez être connecté encore.

68
00:06:07,310 --> 00:06:11,810
Encore une fois, nous entrons dans la tête de pomme de terre.

69
00:06:11,810 --> 00:06:12,860
Mot de passe.

70
00:06:13,270 --> 00:06:14,000
D'ACCORD.

71
00:06:14,570 --> 00:06:21,050
Maintenant, si j'essaie de le faire, jetez un oeil à ce que nous voyons ici.

72
00:06:21,110 --> 00:06:23,370
La première chose que nous imprimons ressemble à ceci.

73
00:06:23,390 --> 00:06:31,650
Donc, c'est trouvé terrain de camping Arthur ID et puis nous avons des demandes que les données utilisateur I.D. Et ils semblent être identiques.

74
00:06:32,120 --> 00:06:34,370
Et quand ils sont imprimés, ils sont identiques.

75
00:06:34,370 --> 00:06:47,500
Mais derrière les scènes sont en fait pas les mêmes, donc les demandes que l'ID utilisateur de son ID de soulignement est une chaîne trouvée terrain de camping author point ID est un objet, c'est un objet mangouste.

76
00:06:47,510 --> 00:06:49,380
Et ce n'est qu'une question délicate.

77
00:06:49,710 --> 00:06:59,440
Je l'oublie de temps en temps, c'est vraiment frustrant parce qu'ils ressemblent à la même lorsque vous essayez de déboguer, mais la vérité est la première n'est pas en fait une chaîne, c'est un objet mangouste.

78
00:06:59,540 --> 00:07:00,530
Celle que nous avons imprimée.

79
00:07:00,530 --> 00:07:04,470
Nous voyons une chaîne, mais c'est juste la version à deux cordes.

80
00:07:04,490 --> 00:07:06,460
Dans les coulisses, ce n'est pas une ficelle.

81
00:07:06,740 --> 00:07:07,610
Et c'est une chaîne.

82
00:07:07,610 --> 00:07:09,750
Donc, quand on les compare, ça ne marchera pas.

83
00:07:10,070 --> 00:07:19,200
Donc, plutôt que de les comparer avec triple égal ou double égale ce que nous pouvons faire à la place est d'utiliser une méthode que la mangouste nous donne à cette fin.

84
00:07:19,520 --> 00:07:23,180
Donc, ce que nous faisons est d'écrire une déclaration IF mis plutôt que de vérifier les terrains de camping.

85
00:07:23,210 --> 00:07:26,620
L'auteur Dodd ID triple est égal à la requête à User ID.

86
00:07:26,870 --> 00:07:31,650
Nous utilisons des points égaux.

87
00:07:31,650 --> 00:07:33,070
Voilà.

88
00:07:33,950 --> 00:07:43,000
Et maintenant, notre déclaration IF devrait fonctionner, sauf pour le fait que cela doit être trouvé camping de nouveau ce qui revient à la base de données que nous trouvons en utilisant cet ID.

89
00:07:43,040 --> 00:07:54,530
Nous trouvons donc que, avec l'ID basée sur l'itinéraire, nous vérifions si l'ID d'auteur sur ce terrain de camping particulier trouvé correspond à l'ID d'utilisateur actuellement connecté.

90
00:07:54,560 --> 00:07:57,090
Si c'est le cas, nous ferons une chose.

91
00:07:57,230 --> 00:07:58,750
Sinon, nous ferons autre chose.

92
00:07:58,760 --> 00:08:09,090
Donc, si c'est le cas, nous allons faire ceci ici rendre la page camping de la page du camping d'éditer avec terrain de camping trouvé.

93
00:08:09,230 --> 00:08:11,320
Sinon, nous allons faire un repos envoyer.

94
00:08:11,720 --> 00:08:22,520
Vous n'avez pas la permission de le faire, bien sûr, va changer cela éventuellement ou il ne sera pas seulement un point rouge cent, mais nous aurons un message réel qui affiche.

95
00:08:22,520 --> 00:08:34,280
Alors essayons d'aller à notre application allez à une page d'affichage première chose si j'essaie de l'éditer maintenant, je dois être connecté.

96
00:08:34,550 --> 00:08:49,070
Maintenant, si je me connecte ou je m'inscris comme quelqu'un d'autre que la tête de pomme de terre, il fera tomate tête et j'essaie de modifier que vous verrez avec espoir.

97
00:08:49,100 --> 00:08:52,160
Là-bas, je vous ai obtenu n'avez pas la permission de le faire.

98
00:08:52,280 --> 00:09:05,730
Maintenant, si nous revenons en arrière et déconnectez-vous et signez de nouveau en tant que tête de pomme de terre et essayer tout à nouveau, j'essaie de modifier.

99
00:09:06,020 --> 00:09:07,010
J'ai la permission.

100
00:09:07,040 --> 00:09:08,270
Et je finis ici.

101
00:09:08,270 --> 00:09:09,420
Donc ça marche.

102
00:09:09,440 --> 00:09:10,750
Qui est genial.

103
00:09:10,880 --> 00:09:15,750
Maintenant, ce que nous allons faire est réellement refactoriser cela dans une fonction distincte.

104
00:09:15,800 --> 00:09:18,200
La plupart de cette logique l'appellera quelque chose comme.

105
00:09:18,200 --> 00:09:29,030
Vérifiez le terrain de camping de l'utilisateur ou assurez-vous que l'utilisateur du terrain de camping a quelque chose où nous vérifions que l'utilisateur actuellement connecté utilise ce camping particulier.

106
00:09:29,240 --> 00:09:34,050
Et la raison pour laquelle nous allons passer que dans le middleware est que nous allons l'utiliser sur éditer.

107
00:09:34,190 --> 00:09:35,920
Nous voulons également l'utiliser lors de la mise à jour.

108
00:09:35,960 --> 00:09:39,110
Nous ne voulons pas que quelqu'un puisse envoyer une demande s'ils ne sont pas connectés.

109
00:09:39,110 --> 00:09:41,890
Donc, même si encore une fois en utilisant le navigateur.

110
00:09:42,050 --> 00:09:48,110
La seule façon de faire visuellement obtenir la mise à jour pour envoyer des données est d'utiliser ce formulaire.

111
00:09:48,350 --> 00:09:53,110
Vous pouvez utiliser le facteur que vous pouvez envoyer une demande de facteur et ne pas être authentifié.

112
00:09:53,120 --> 00:09:57,850
Nous voulons donc la même logique ici et nous voulons faire la même chose pour la suppression.

113
00:09:57,920 --> 00:10:02,640
Nous ne voulons donc pas que vous puissiez supprimer quelque chose d'un terrain de camping si vous n'êtes pas connecté.

114
00:10:02,690 --> 00:10:04,680
Et si vous ne le possédez pas.

115
00:10:04,970 --> 00:10:10,080
Donc ce que nous allons faire est d'écrire un middleware, nous allons copier ce code pour l'instant.

116
00:10:10,220 --> 00:10:15,850
Je vais le laisser là, mais nous allons descendre pour l'instant juste avec nos autres middleware.

117
00:10:15,920 --> 00:10:22,290
Eh bien le dernier appelé vérifier terrain de camping propriété juste comme ça.

118
00:10:22,580 --> 00:10:25,380
Et puis nous allons coller ce code et nous allons avoir un peu de travail à faire ici.

119
00:10:25,670 --> 00:10:32,750
Mais l'objectif final est que sur notre édition nous devrions être en mesure d'ajouter notre middleware ici vérifier la propriété de camping.

120
00:10:32,750 --> 00:10:35,030
Nous devrions être en mesure de le faire mise à jour.

121
00:10:35,050 --> 00:10:39,930
Et aussi sur la suppression, mais nous allons commencer par elle et ce que nous voulons faire est de vérifier.

122
00:10:39,930 --> 00:10:47,860
D'abord, vous devez ajouter dans la réponse de la demande et rappelez-vous ensuite que le middleware est mis en place demande réponse prochaine.

123
00:10:47,870 --> 00:10:50,140
Donc, si l'utilisateur est actuellement connecté.

124
00:10:50,330 --> 00:10:55,550
Continuez de bouger si vous n'êtes pas connecté au lieu de faire un repos nous envoyer.

125
00:10:55,760 --> 00:10:59,860
Pour l'instant nous allons faire une redirection de restaurant et nous n'avons pas encore vu cela.

126
00:10:59,990 --> 00:11:05,140
Nous pouvons redstart redirection retour et qui prendra l'utilisateur de retour à l'endroit où ils sont venus de la plupart.

127
00:11:05,150 --> 00:11:10,440
La page précédente sur laquelle ils étaient et très bientôt vont vous montrer comment nous pouvons envoyer un message.

128
00:11:10,460 --> 00:11:19,010
Eh bien, le message que nous voulons envoyer est quelque chose comme Vous n'êtes pas connecté ou vous devez être autorisé à le faire, mais nous le quittons comme ça pour l'instant.

129
00:11:19,010 --> 00:11:22,310
Ensuite, s'ils sont connectés, nous allons trouver le terrain de camping.

130
00:11:22,610 --> 00:11:26,420
S'il ya une erreur, nous redirigerons également vers l'arrière.

131
00:11:26,420 --> 00:11:41,690
Encore une fois cette erreur se produirait si le terrain de camping ne pouvait pas être trouvé pour une raison quelconque ou si la base de données n'est pas connecté ou est quelque chose de bizarre généralement que nous ne verrions pas autrement si le camping correspond à l'ID utilisateur demandes.

132
00:11:41,690 --> 00:11:57,010
Donc, si l'utilisateur qui est comme dans possède ce alors plutôt que de rendre les terrains de camping modifier parce que nous ne voulons pas toujours ce middleware pour rendre éditer ce que nous voulons qu'il fasse est de passer au reste du code en supprimer ou passer au code Une mise à jour ou une modification.

133
00:11:57,020 --> 00:12:00,870
Donc, c'est ce que nous faisons ensuite.

134
00:12:00,910 --> 00:12:08,510
Sinon, s'ils ne le possèdent pas, nous ferons un redirection rez.

135
00:12:08,510 --> 00:12:09,330
Génial.

136
00:12:09,410 --> 00:12:16,200
Alors essayons ceci, sauvez-le et nous allons faire une mise à jour de notre route d'édition ici.

137
00:12:16,310 --> 00:12:38,390
Nous pouvons réduire ce pourcentage beaucoup, donc nous n'avons pas besoin de faire tout cela vraiment sauf pour nous voulons trouver le terrain de camping et tout ce que nous allons faire est si nous trouvons un terrain de camping, nous n'avons pas besoin de vérifier si elle Matchs plus parce que nous faisons cela au milieu où tout ce que nous voulons faire est de trouver un terrain de camping peut se débarrasser de tout cela.

138
00:12:38,510 --> 00:12:48,550
Presque tous les formats Office ce correctement ainsi sortira un peu.

139
00:12:48,550 --> 00:12:49,840
Voilà.

140
00:12:50,690 --> 00:13:02,800
Donc, parce que nous avons ajouté le taux de propriété de camp de Scheck ici tout ce que nous faisons maintenant est si nous arrivons à ce point, cela signifie que nous avons déjà vérifié la propriété du terrain de camping et que nous avons réussi.

141
00:13:03,230 --> 00:13:18,440
Sinon, s'il ya un problème, nous aurions redirigé que voir avec l'erreur que je reçois est nous avons une petite erreur de syntaxe ici qui est je suis en quelque sorte supprimé ma déclaration de fonction ici et vous pouvez voir qu'il se plaint que nous ne gère pas l'erreur qui Nous pourrions gérer.

142
00:13:18,440 --> 00:13:25,690
Mais la chose est si nous arrivons à ce point, il ne devrait pas y avoir d'erreur de trouver PI ID parce que nous l'avons fait ici.

143
00:13:25,990 --> 00:13:29,370
Et si cela fonctionne ici, nous devrions être bien d'y aller quand même.

144
00:13:29,390 --> 00:13:33,590
Alors essayons-le, mais voyez si nous avons des problèmes.

145
00:13:33,620 --> 00:13:36,610
Fondamentalement, nous avons simplement déplacé notre code dans une fonction distincte.

146
00:13:37,040 --> 00:13:41,650
Et n'oubliez pas qu'un middleware est appelé Avant d'arriver au bon gestionnaire.

147
00:13:42,140 --> 00:13:42,530
D'ACCORD.

148
00:13:42,560 --> 00:13:43,980
Donc, nous allons lui donner un coup de feu.

149
00:13:44,120 --> 00:13:49,270
Première chose, revenons en arrière et disons essayer et cliquez sur modifier.

150
00:13:49,280 --> 00:13:51,910
Je ne suis pas connecté.
