﻿1
00:00:00,191 --> 00:00:02,870
‫- : Dans ce cours, nous allons

2
00:00:02,870 --> 00:00:07,210
‫très vite apprendre à tester des connexions https sécurisées, avec un

3
00:00:07,210 --> 00:00:08,730
‫Heroku, car nous

4
00:00:08,730 --> 00:00:11,041
‫en avons réellement besoin, à un

5
00:00:11,041 --> 00:00:12,983
‫moment donné, dans notre application.

6
00:00:14,540 --> 00:00:18,560
‫Passons donc ici à notre contrôleur d'authentification.

7
00:00:18,560 --> 00:00:21,060
‫Et juste ici en haut,

8
00:00:21,060 --> 00:00:24,049
‫dans cette fonction de création de jeton

9
00:00:24,049 --> 00:00:26,840
‫envoyé, voici l'endroit où nous définissons

10
00:00:26,840 --> 00:00:30,240
‫le cookie Web adjacent à sécuriser, si nous

11
00:00:30,240 --> 00:00:32,343
‫sommes actuellement en production.

12
00:00:33,300 --> 00:00:34,661
‫Souviens-toi de ça.

13
00:00:34,661 --> 00:00:37,630
‫Donc, rappelez-vous que nous avons créé cette

14
00:00:37,630 --> 00:00:39,270
‫fonction avec une

15
00:00:39,270 --> 00:00:41,255
‫réponse adjacente, elle envoie également

16
00:00:41,255 --> 00:00:44,670
‫un cookie, qui contient également le jeton Web adjacent.

17
00:00:44,670 --> 00:00:47,090
‫Et ce cookie a plusieurs options.

18
00:00:47,090 --> 00:00:49,260
‫Le premier, quand il expire.

19
00:00:49,260 --> 00:00:50,093
‫Le

20
00:00:50,093 --> 00:00:54,490
‫second, qu'il n'est accessible que via http essentiellement.

21
00:00:54,490 --> 00:00:56,570
‫Et puis, quand on est en

22
00:00:56,570 --> 00:00:59,344
‫production, on s'est dit que ce cookie ne peut

23
00:00:59,344 --> 00:01:01,480
‫être envoyé que sur une connexion sécurisée.

24
00:01:01,480 --> 00:01:04,770
‫Donc, en gros, sur une connexion https.

25
00:01:04,770 --> 00:01:05,810
‫Très bien.

26
00:01:05,810 --> 00:01:08,117
‫Maintenant, le problème avec ça, c'est

27
00:01:08,117 --> 00:01:10,810
‫qu'en fait, le fait que nous soyons en

28
00:01:10,810 --> 00:01:14,370
‫production, ne signifie pas que la connexion est réellement sécurisée.

29
00:01:14,370 --> 00:01:15,340
‫À droite?

30
00:01:15,340 --> 00:01:18,200
‫Car bien sûr, toutes les applications

31
00:01:18,200 --> 00:01:21,470
‫déployées ne sont pas automatiquement définies sur https.

32
00:01:21,470 --> 00:01:25,021
‫Et donc nous devons changer cela si nous avons ici.

33
00:01:25,021 --> 00:01:25,892
‫Très bien.

34
00:01:25,892 --> 00:01:29,700
‫Maintenant, dans express, nous avons en fait une propriété sécurisée qui

35
00:01:29,700 --> 00:01:31,860
‫se trouve sur la demande.

36
00:01:31,860 --> 00:01:33,682
‫Et ce n'est que

37
00:01:33,682 --> 00:01:38,630
‫lorsque la connexion est sécurisée, que cette demande dot secure est vraie.

38
00:01:38,630 --> 00:01:39,463
‫D'accord?

39
00:01:39,463 --> 00:01:41,090
‫C'est logique, non ?

40
00:01:41,090 --> 00:01:43,790
‫Maintenant, le problème est qu'en fait, dans Heroku,

41
00:01:43,790 --> 00:01:45,370
‫cela ne fonctionne pas.

42
00:01:45,370 --> 00:01:47,107
‫Et c'est parce

43
00:01:47,107 --> 00:01:52,107
‫que le proxy Heroku redirige ou modifie essentiellement toutes les demandes

44
00:01:52,290 --> 00:01:56,170
‫entrantes dans notre application avant qu'elles n'atteignent réellement l'application.

45
00:01:56,170 --> 00:01:57,003
‫Très bien.

46
00:01:57,003 --> 00:02:00,682
‫Ainsi, pour que cela fonctionne également sur Heroku, nous

47
00:02:00,682 --> 00:02:04,200
‫devons également tester si l'en-tête du proto avant

48
00:02:04,200 --> 00:02:06,952
‫x est défini sur https.

49
00:02:06,952 --> 00:02:07,785
‫Très bien.

50
00:02:07,785 --> 00:02:09,204
‫Donc, cela semble un

51
00:02:09,204 --> 00:02:13,170
‫peu déroutant, mais encore une fois, c'est quelque chose que Heroku fait en interne.

52
00:02:13,170 --> 00:02:16,549
‫Alors, testons ici si req. secure est

53
00:02:16,549 --> 00:02:21,549
‫vrai, ou si req. en-têtes.

54
00:02:22,134 --> 00:02:27,134
‫Et l'en-tête que nous recherchons est x proto transféré.

55
00:02:29,820 --> 00:02:33,830
‫Et cet en-tête est défini sur https si nous

56
00:02:33,830 --> 00:02:36,210
‫sommes sur une connexion sécurisée.

57
00:02:36,210 --> 00:02:37,050
‫Très bien?

58
00:02:37,050 --> 00:02:40,190
‫Donc, c'est quelque chose de très spécifique à Heroku.

59
00:02:40,190 --> 00:02:43,870
‫Et c'est pourquoi j'ai laissé cela ici pour la dernière

60
00:02:43,870 --> 00:02:46,113
‫section, après avoir déjà déployé l'application.

61
00:02:46,950 --> 00:02:50,700
‫Donc, si l'un ou l'autre req. secure est vrai, ou

62
00:02:50,700 --> 00:02:55,150
‫si cet en-tête ici est défini sur https, alors nous voulons

63
00:02:55,150 --> 00:02:58,660
‫que les options sécurisées ici soient définies sur true.

64
00:02:58,660 --> 00:03:01,213
‫Et, donc, nous pouvons réellement refactoriser cela.

65
00:03:02,680 --> 00:03:04,500
‫Donc, fondamentalement, nous pouvons accepter cela,

66
00:03:04,500 --> 00:03:06,180
‫car ce sera vrai.

67
00:03:06,180 --> 00:03:08,186
‫Et, donc, je dis si

68
00:03:08,186 --> 00:03:10,860
‫c'est vrai, alors disons égal vrai ici.

69
00:03:10,860 --> 00:03:12,041
‫Donc, ça n'a pas de sens.

70
00:03:12,041 --> 00:03:15,023
‫Au lieu de cela, nous pouvons simplement le faire comme ça.

71
00:03:16,590 --> 00:03:18,110
‫Très bien?

72
00:03:18,110 --> 00:03:20,820
‫Et, en fait, nous pouvons aller encore plus loin.

73
00:03:20,820 --> 00:03:23,883
‫Et mettez l'option sécurisée ici.

74
00:03:25,350 --> 00:03:28,313
‫Alors, pourquoi l'avoir dehors si on peut juste le mettre ici ?

75
00:03:29,150 --> 00:03:33,823
‫Alors, la sécurité équivaut à ça, d'accord ?

76
00:03:35,550 --> 00:03:37,723
‫Et puis on n'a plus besoin de ça.

77
00:03:38,910 --> 00:03:41,370
‫Et, puisque nous procédons à une

78
00:03:41,370 --> 00:03:46,173
‫refactorisation, nous n'avons en fait plus besoin du tout de cette variable ici.

79
00:03:48,130 --> 00:03:50,946
‫Alors, mettons-le simplement ici, donnons-lui un coffre-fort, et il y

80
00:03:50,946 --> 00:03:53,520
‫a quelque chose qui ne va pas là-bas.

81
00:03:53,520 --> 00:03:55,950
‫D'accord, et donc, maintenant le problème est

82
00:03:55,950 --> 00:03:59,190
‫que vous n'avez pas accès actuellement à la requête

83
00:03:59,190 --> 00:04:00,680
‫dans cette fonction.

84
00:04:00,680 --> 00:04:03,103
‫D'accord, nous devons l'ajouter ici.

85
00:04:04,050 --> 00:04:09,050
‫Demande, puis partout où nous avons créé un jeton envoyé, nous devons

86
00:04:09,120 --> 00:04:11,693
‫bien sûr y transmettre la demande.

87
00:04:13,020 --> 00:04:14,063
‫Alors, c'est ici.

88
00:04:17,000 --> 00:04:19,763
‫Donc, utilisez la commande D pour trouver le suivant en gros.

89
00:04:21,150 --> 00:04:22,353
‫Demandez ici.

90
00:04:27,740 --> 00:04:31,193
‫Et puis enfin ici aussi.

91
00:04:33,010 --> 00:04:36,352
‫D'accord, ça a l'air beaucoup plus

92
00:04:36,352 --> 00:04:40,940
‫joli et ça devrait aussi fonctionner beaucoup mieux qu'avant.

93
00:04:40,940 --> 00:04:44,480
‫Cependant, pour le moment, cela ne fonctionnera toujours pas, car il

94
00:04:44,480 --> 00:04:47,460
‫ne reste qu'une chose à faire, qui consiste

95
00:04:47,460 --> 00:04:51,350
‫essentiellement à faire en sorte que notre application fasse confiance aux proxy.

96
00:04:51,350 --> 00:04:54,180
‫Donc, encore une fois, request dot

97
00:04:54,180 --> 00:04:57,550
‫secure ne fonctionne pas en premier lieu car Heroku

98
00:04:57,550 --> 00:05:01,500
‫agit comme un proxy, qui redirige et modifie les demandes entrantes.

99
00:05:01,500 --> 00:05:04,819
‫Et, donc, nous devons aller à l'application

100
00:05:04,819 --> 00:05:08,010
‫point JS, puis juste après celle-ci ici,

101
00:05:08,010 --> 00:05:10,640
‫faisons maintenant confiance aux proxy.

102
00:05:10,640 --> 00:05:15,033
‫Et nous le faisons en disant que le point d'application active le proxy de confiance.

103
00:05:20,680 --> 00:05:21,513
‫D'accord?

104
00:05:21,513 --> 00:05:24,498
‫Donc, c'est quelque chose qui est intégré dans

105
00:05:24,498 --> 00:05:26,980
‫express pour ce genre de situations.

106
00:05:26,980 --> 00:05:27,813
‫Très bien?

107
00:05:27,813 --> 00:05:31,400
‫Et donc, seulement si nous avons correctement configuré

108
00:05:31,400 --> 00:05:35,210
‫ce paramètre ici, alors cet en-tête ici sera correctement

109
00:05:35,210 --> 00:05:38,483
‫défini et nous pourrons lire sa valeur.

110
00:05:39,450 --> 00:05:40,410
‫Très bien?

111
00:05:40,410 --> 00:05:44,470
‫C'est ainsi que vous testez si une connexion est sécurisée ou non,

112
00:05:44,470 --> 00:05:47,363
‫lorsque votre application est déployée sur Heroku.

