﻿1
00:00:01,130 --> 00:00:03,200
‫So, we're currently in the process

2
00:00:03,200 --> 00:00:06,500
‫of putting some finishing touches on our API,

3
00:00:06,500 --> 00:00:09,120
‫and one of the things that we need to do now

4
00:00:09,120 --> 00:00:11,242
‫is to fix some of the authentication

5
00:00:11,242 --> 00:00:14,603
‫and authorization in all our resources.

6
00:00:16,190 --> 00:00:19,340
‫And we're gonna start here with our tour resource.

7
00:00:19,340 --> 00:00:21,190
‫And since all the authentication

8
00:00:21,190 --> 00:00:24,200
‫and authorization stuff is always defined

9
00:00:24,200 --> 00:00:25,960
‫on the route declarations,

10
00:00:25,960 --> 00:00:29,590
‫well, we're gonna work here on the tour routes file.

11
00:00:29,590 --> 00:00:32,850
‫So, this tour API that we have here

12
00:00:32,850 --> 00:00:36,470
‫is basically what we want to expose to the world.

13
00:00:36,470 --> 00:00:38,460
‫So for example, we might want to allow

14
00:00:38,460 --> 00:00:41,300
‫other travel sites to embed our tours

15
00:00:41,300 --> 00:00:42,970
‫into their own website.

16
00:00:42,970 --> 00:00:46,080
‫And so that's what this API is basically for.

17
00:00:46,080 --> 00:00:49,230
‫And so therefore, we will not have any authorization

18
00:00:49,230 --> 00:00:51,130
‫on get tour requests.

19
00:00:51,130 --> 00:00:52,060
‫Right?

20
00:00:52,060 --> 00:00:54,448
‫And so we should actually get rid of the one

21
00:00:54,448 --> 00:00:55,598
‫that we have currently.

22
00:00:56,600 --> 00:00:57,433
‫Right?

23
00:00:57,433 --> 00:00:58,480
‫So, this one.

24
00:00:58,480 --> 00:01:00,270
‫So on getting all the tours,

25
00:01:00,270 --> 00:01:02,080
‫right now we have to protect it,

26
00:01:02,080 --> 00:01:05,700
‫and so only authenticated users can use that.

27
00:01:05,700 --> 00:01:06,533
‫Okay?

28
00:01:06,533 --> 00:01:08,260
‫But again, that doesn't make much sense,

29
00:01:08,260 --> 00:01:10,080
‫because you want to expose this part

30
00:01:10,080 --> 00:01:12,700
‫of the API to everyone.

31
00:01:12,700 --> 00:01:14,990
‫So, let's get rid of that.

32
00:01:14,990 --> 00:01:18,960
‫However, the actions of creating or editing tours,

33
00:01:18,960 --> 00:01:20,860
‫we only want to allow lead guides

34
00:01:20,860 --> 00:01:23,820
‫and administrators to perform these actions.

35
00:01:23,820 --> 00:01:26,130
‫So of course, no normal users,

36
00:01:26,130 --> 00:01:27,950
‫and also no normal guides.

37
00:01:27,950 --> 00:01:30,520
‫So, just admins and lead guides.

38
00:01:30,520 --> 00:01:32,363
‫And so let's put that here actually.

39
00:01:35,005 --> 00:01:36,922
‫Authcontroller.protect,

40
00:01:40,440 --> 00:01:43,703
‫and authcontroller.restrictto.

41
00:01:48,060 --> 00:01:48,893
‫Admin,

42
00:01:51,930 --> 00:01:53,083
‫and lead guide.

43
00:01:55,430 --> 00:01:56,930
‫Give it a save here,

44
00:01:56,930 --> 00:01:59,620
‫and that looks just fine.

45
00:01:59,620 --> 00:02:03,210
‫And next up we want to do the same with editing.

46
00:02:03,210 --> 00:02:04,043
‫Right?

47
00:02:04,043 --> 00:02:06,840
‫So we already did that actually in the leading,

48
00:02:06,840 --> 00:02:10,863
‫and so let's just copy what we have here to patch as well.

49
00:02:13,000 --> 00:02:16,940
‫Give it a save, and now that actually looks perfect.

50
00:02:16,940 --> 00:02:18,440
‫Okay?

51
00:02:18,440 --> 00:02:19,890
‫So everything else,

52
00:02:19,890 --> 00:02:22,330
‫even getting just one single tour here,

53
00:02:22,330 --> 00:02:25,357
‫is of course free to everyone, okay?

54
00:02:25,357 --> 00:02:28,950
‫And the same goes for getting the top tours,

55
00:02:28,950 --> 00:02:31,820
‫and also getting the tour statistics.

56
00:02:31,820 --> 00:02:33,880
‫Now here, about the get monthly plan,

57
00:02:33,880 --> 00:02:35,980
‫well we also might want to restrict that.

58
00:02:35,980 --> 00:02:39,473
‫Only, for example, to everyone except normal users.

59
00:02:40,340 --> 00:02:41,220
‫Okay?

60
00:02:41,220 --> 00:02:43,433
‫So that's copy this one here as well,

61
00:02:44,820 --> 00:02:48,493
‫give it a save, and then also add the normal guides.

62
00:02:51,230 --> 00:02:52,063
‫Alright?

63
00:02:52,063 --> 00:02:55,860
‫And so, that looks perfect at this point, I think.

64
00:02:55,860 --> 00:02:56,693
‫Okay?

65
00:02:56,693 --> 00:03:00,233
‫So basically, our tour router is now completed.

66
00:03:01,250 --> 00:03:02,220
‫Perfect.

67
00:03:02,220 --> 00:03:04,010
‫And I'm not going to test all of this

68
00:03:04,010 --> 00:03:06,990
‫because we already know that it works.

69
00:03:06,990 --> 00:03:08,060
‫Alright?

70
00:03:08,060 --> 00:03:09,720
‫So, let's close this one

71
00:03:09,720 --> 00:03:12,660
‫and move straight to the next one.

72
00:03:12,660 --> 00:03:14,600
‫So, these first routes here

73
00:03:14,600 --> 00:03:17,150
‫are of course open to everyone.

74
00:03:17,150 --> 00:03:19,080
‫So, signing up, logging in,

75
00:03:19,080 --> 00:03:22,000
‫forget password, and reset password.

76
00:03:22,000 --> 00:03:25,020
‫For none of these you need to be logged in.

77
00:03:25,020 --> 00:03:26,130
‫Right?

78
00:03:26,130 --> 00:03:27,930
‫But, you need to be logged in

79
00:03:27,930 --> 00:03:31,760
‫so to be authenticated to update your password,

80
00:03:31,760 --> 00:03:33,403
‫to get your own information,

81
00:03:34,540 --> 00:03:37,700
‫to update or to delete your own account,

82
00:03:37,700 --> 00:03:39,620
‫and really for all these other operations

83
00:03:39,620 --> 00:03:40,680
‫here as well.

84
00:03:40,680 --> 00:03:44,320
‫So we don't want the public to basically get information

85
00:03:44,320 --> 00:03:45,990
‫about all the users.

86
00:03:45,990 --> 00:03:48,780
‫We also don't want anyone to delete users,

87
00:03:48,780 --> 00:03:52,130
‫or to update users, and really none of these

88
00:03:52,130 --> 00:03:55,150
‫operations here should be free for the public.

89
00:03:55,150 --> 00:03:55,983
‫Okay?

90
00:03:55,983 --> 00:03:57,520
‫So for all of these routes here,

91
00:03:57,520 --> 00:03:59,290
‫starting from this point,

92
00:03:59,290 --> 00:04:01,600
‫you will always have to be authenticated.

93
00:04:01,600 --> 00:04:02,433
‫Alright?

94
00:04:02,433 --> 00:04:04,960
‫And so, we could now go ahead and add

95
00:04:04,960 --> 00:04:09,960
‫this authcontroller.protect to all of these routes,

96
00:04:09,970 --> 00:04:13,330
‫but actually we can do better than that, right?

97
00:04:13,330 --> 00:04:14,780
‫So in order to do that,

98
00:04:14,780 --> 00:04:17,790
‫let's keep in mind that this protect function here

99
00:04:17,790 --> 00:04:19,550
‫is really just a middleware.

100
00:04:19,550 --> 00:04:21,910
‫And also remember that middleware

101
00:04:21,910 --> 00:04:24,960
‫runs always in sequence, right?

102
00:04:24,960 --> 00:04:26,940
‫Now with this router that we have here,

103
00:04:26,940 --> 00:04:28,810
‫that we created in the beginning,

104
00:04:28,810 --> 00:04:31,000
‫is kind of like a mini application.

105
00:04:31,000 --> 00:04:32,420
‫Remember that?

106
00:04:32,420 --> 00:04:34,570
‫And so just like with the regular app

107
00:04:34,570 --> 00:04:37,410
‫we can use middleware on this router as well.

108
00:04:37,410 --> 00:04:38,470
‫Okay?

109
00:04:38,470 --> 00:04:41,403
‫And so, we can do something like this.

110
00:04:42,260 --> 00:04:44,780
‫Router.use,

111
00:04:44,780 --> 00:04:49,453
‫and now authcontroller.protect,

112
00:04:50,980 --> 00:04:52,140
‫and that's it.

113
00:04:52,140 --> 00:04:53,060
‫And what this will do

114
00:04:53,060 --> 00:04:55,200
‫is to basically protect all the routes

115
00:04:55,200 --> 00:04:57,243
‫that come after this point.

116
00:04:58,120 --> 00:04:58,953
‫Okay?

117
00:04:58,953 --> 00:05:00,770
‫And again, that's because middleware

118
00:05:00,770 --> 00:05:02,240
‫runs in sequence.

119
00:05:02,240 --> 00:05:05,090
‫And so after these four middleware functions,

120
00:05:05,090 --> 00:05:06,940
‫because remember that technically

121
00:05:06,940 --> 00:05:08,770
‫this is still also middleware,

122
00:05:08,770 --> 00:05:12,270
‫then the next middleware in the stack is this protect.

123
00:05:12,270 --> 00:05:14,710
‫And this will then only call the next middleware

124
00:05:14,710 --> 00:05:16,590
‫if the user is authenticated.

125
00:05:16,590 --> 00:05:20,550
‫And the next middleware in this case is this patch here.

126
00:05:20,550 --> 00:05:21,383
‫Okay?

127
00:05:21,383 --> 00:05:23,030
‫And so, again, what this is means

128
00:05:23,030 --> 00:05:24,390
‫is that all of this routes

129
00:05:24,390 --> 00:05:26,570
‫to all these middlewares, technically,

130
00:05:26,570 --> 00:05:29,940
‫that come after this one are now protected.

131
00:05:29,940 --> 00:05:32,680
‫And so, we can go ahead and remove this protect

132
00:05:32,680 --> 00:05:33,863
‫from all of them.

133
00:05:35,800 --> 00:05:36,633
‫Okay?

134
00:05:41,320 --> 00:05:44,450
‫And just to prove you that this now still works,

135
00:05:44,450 --> 00:05:48,760
‫let's just go ahead and get the me information.

136
00:05:48,760 --> 00:05:50,413
‫So basically the current user.

137
00:05:51,390 --> 00:05:52,793
‫So if I now run this,

138
00:05:54,490 --> 00:05:56,740
‫you'll see that it still works.

139
00:05:56,740 --> 00:05:58,873
‫And if I take away the authentication,

140
00:06:00,720 --> 00:06:03,540
‫then it says we are not logged in.

141
00:06:03,540 --> 00:06:06,513
‫And so that's exactly what that protect middleware does.

142
00:06:07,650 --> 00:06:08,483
‫Right?

143
00:06:09,810 --> 00:06:11,973
‫So, it's now going to be back to working.

144
00:06:13,180 --> 00:06:14,330
‫So, perfect!

145
00:06:14,330 --> 00:06:16,700
‫That's a nice little trick in order to protect

146
00:06:16,700 --> 00:06:18,880
‫all of the routes at the same time,

147
00:06:18,880 --> 00:06:20,830
‫typically by using a middleware

148
00:06:20,830 --> 00:06:23,233
‫that comes before all these other routes.

149
00:06:25,070 --> 00:06:25,990
‫Okay?

150
00:06:25,990 --> 00:06:28,020
‫And for example, if we now move this

151
00:06:28,020 --> 00:06:31,100
‫a little bit up, like this for example,

152
00:06:31,100 --> 00:06:33,200
‫then we would also need to be logged in

153
00:06:33,200 --> 00:06:35,860
‫in order to use forgot password.

154
00:06:35,860 --> 00:06:36,810
‫Right?

155
00:06:36,810 --> 00:06:38,693
‫So, let me just prove that to you.

156
00:06:39,930 --> 00:06:40,763
‫Okay?

157
00:06:40,763 --> 00:06:43,970
‫And so usually, of course, we do not need to be logged in

158
00:06:43,970 --> 00:06:45,820
‫in order to forget our password,

159
00:06:45,820 --> 00:06:48,800
‫because that wouldn't make any sense, right?

160
00:06:48,800 --> 00:06:50,760
‫But right now, since we move that middleware

161
00:06:50,760 --> 00:06:53,207
‫a bit up, it says "you are not logged in".

162
00:06:54,230 --> 00:06:55,160
‫Okay?

163
00:06:55,160 --> 00:06:59,090
‫And so really, that proves that this authcontroller here

164
00:06:59,090 --> 00:07:00,333
‫is doing it's job.

165
00:07:03,080 --> 00:07:06,120
‫So, protect all routes --

166
00:07:08,690 --> 00:07:09,903
‫after this middleware.

167
00:07:12,750 --> 00:07:13,583
‫Okay.

168
00:07:13,583 --> 00:07:15,680
‫Now also remember how we said that

169
00:07:15,680 --> 00:07:18,480
‫all of these actions here should only be executed

170
00:07:18,480 --> 00:07:20,010
‫by administrators,

171
00:07:20,010 --> 00:07:23,130
‫and so now we can actually use the exact same technique

172
00:07:23,130 --> 00:07:26,213
‫that we used up here to protect all of these routes.

173
00:07:27,630 --> 00:07:30,337
‫So, router.use,

174
00:07:32,622 --> 00:07:36,122
‫authcontroller.restrictto,

175
00:07:38,000 --> 00:07:39,030
‫admin.

176
00:07:39,030 --> 00:07:39,863
‫Okay?

177
00:07:39,863 --> 00:07:42,700
‫And so now, only admins will be able to get all users,

178
00:07:42,700 --> 00:07:46,340
‫to create new users, to get users again,

179
00:07:46,340 --> 00:07:49,160
‫and to patch and delete users.

180
00:07:49,160 --> 00:07:50,010
‫Alright?

181
00:07:50,010 --> 00:07:51,540
‫And so from this point on,

182
00:07:51,540 --> 00:07:53,810
‫all the routes are not only protected,

183
00:07:53,810 --> 00:07:56,220
‫but also restricted only to the admin.

184
00:07:56,220 --> 00:07:59,300
‫But of course, the ones that come before everyone

185
00:07:59,300 --> 00:08:02,420
‫who is logged in can access them, okay?

186
00:08:02,420 --> 00:08:04,070
‫So let me just prove that to you.

187
00:08:05,290 --> 00:08:09,160
‫So, I'm going to log in, not with admin,

188
00:08:09,160 --> 00:08:10,633
‫but with testuser.

189
00:08:14,230 --> 00:08:15,780
‫Okay?

190
00:08:15,780 --> 00:08:18,120
‫And so we got logged in successfully,

191
00:08:18,120 --> 00:08:21,823
‫now let's try to see all the users.

192
00:08:24,800 --> 00:08:26,830
‫And now it says you are not logged in.

193
00:08:26,830 --> 00:08:29,090
‫Well, we are actually logged in,

194
00:08:29,090 --> 00:08:31,653
‫but we forgot to add the authorization here.

195
00:08:32,920 --> 00:08:36,810
‫So, bearer token, send it again,

196
00:08:36,810 --> 00:08:39,993
‫and now we see you don't have permission to perform.

197
00:08:40,990 --> 00:08:45,073
‫But now, when we change this to the administrator,

198
00:08:46,090 --> 00:08:48,130
‫so we log in as an admin now,

199
00:08:48,130 --> 00:08:51,460
‫and now as we get all the users,

200
00:08:51,460 --> 00:08:52,713
‫then of course it works.

201
00:08:54,190 --> 00:08:55,870
‫So, perfect!

202
00:08:55,870 --> 00:08:58,310
‫And that actually finishes the authentication

203
00:08:58,310 --> 00:09:02,060
‫and authorization for these users as well.

204
00:09:02,060 --> 00:09:03,980
‫But just to reflect that in Postman,

205
00:09:03,980 --> 00:09:08,420
‫let's actually go back and so basically

206
00:09:08,420 --> 00:09:11,040
‫put the authorization here, everywhere.

207
00:09:11,040 --> 00:09:12,240
‫Okay?

208
00:09:12,240 --> 00:09:14,190
‫And again, that's because later on

209
00:09:14,190 --> 00:09:16,610
‫we're gonna create an API documentation

210
00:09:16,610 --> 00:09:19,860
‫based on the collection that we created here.

211
00:09:19,860 --> 00:09:22,240
‫And then, it's important that we actually mark

212
00:09:22,240 --> 00:09:23,793
‫this one here as protected.

213
00:09:25,504 --> 00:09:26,337
‫Save it.

214
00:09:28,600 --> 00:09:29,973
‫Save this one as well.

215
00:09:31,070 --> 00:09:33,603
‫And the same for update and delete user.

216
00:09:35,840 --> 00:09:38,133
‫So, bearer token, save,

217
00:09:39,330 --> 00:09:40,883
‫and the same for update.

218
00:09:46,048 --> 00:09:49,290
‫Alright, and actually since we're doing that,

219
00:09:49,290 --> 00:09:51,233
‫let's do the same with all the others.

220
00:09:52,100 --> 00:09:54,083
‫So, not the reviews,

221
00:09:55,430 --> 00:09:57,063
‫that one is for a bit later,

222
00:09:59,730 --> 00:10:02,430
‫but really for the tours.

223
00:10:02,430 --> 00:10:05,223
‫So here we no longer need any authentication,

224
00:10:06,860 --> 00:10:08,350
‫so let's save that.

225
00:10:08,350 --> 00:10:11,490
‫Forgetting we also don't need any authorization,

226
00:10:11,490 --> 00:10:15,823
‫but for creating we now need the bearer token.

227
00:10:17,460 --> 00:10:18,420
‫Okay?

228
00:10:18,420 --> 00:10:21,710
‫Also for updating, and so it makes sense

229
00:10:22,620 --> 00:10:26,530
‫to protect them here in Postman as well.

230
00:10:26,530 --> 00:10:28,210
‫Now this one already had it,

231
00:10:28,210 --> 00:10:30,390
‫because we actually used this one to test it

232
00:10:30,390 --> 00:10:31,340
‫in the first place.

233
00:10:32,910 --> 00:10:36,790
‫So this one did not have it, but the get monthly plan,

234
00:10:36,790 --> 00:10:38,463
‫we protected this one as well.

235
00:10:39,780 --> 00:10:42,070
‫Add the bearer token here as well,

236
00:10:42,070 --> 00:10:43,730
‫and so I believe with this

237
00:10:43,730 --> 00:10:47,800
‫we are really completed now, with these, too.

238
00:10:47,800 --> 00:10:51,210
‫And so what we need to do to finish now this part

239
00:10:51,210 --> 00:10:55,550
‫is here, fix the same thing on the reviews as well.

240
00:10:55,550 --> 00:10:57,390
‫And the first thing that I want to do

241
00:10:57,390 --> 00:10:59,700
‫is to basically protect all of the routes

242
00:10:59,700 --> 00:11:01,900
‫which have to do with reviews.

243
00:11:01,900 --> 00:11:04,520
‫So, we want no one who is not authenticated

244
00:11:04,520 --> 00:11:09,520
‫to get, or to post, or to change, or delete any reviews.

245
00:11:10,620 --> 00:11:11,900
‫Okay?

246
00:11:11,900 --> 00:11:14,573
‫We say router.use,

247
00:11:15,710 --> 00:11:19,750
‫authentication controller.protect.

248
00:11:19,750 --> 00:11:20,583
‫Okay?

249
00:11:20,583 --> 00:11:22,400
‫And so that means that from this point

250
00:11:22,400 --> 00:11:24,330
‫no one can access any of this route

251
00:11:24,330 --> 00:11:26,033
‫without being authenticated.

252
00:11:27,342 --> 00:11:31,150
‫But we can remove this part here, okay?

253
00:11:31,150 --> 00:11:33,910
‫And so now with authentication out of the way,

254
00:11:33,910 --> 00:11:36,490
‫let's think about authorization.

255
00:11:36,490 --> 00:11:38,980
‫So, first of all, only users should

256
00:11:38,980 --> 00:11:40,790
‫be able to post reviews.

257
00:11:40,790 --> 00:11:44,050
‫No guides, and also no administrators.

258
00:11:44,050 --> 00:11:47,120
‫And so this part, we actually already have that here.

259
00:11:47,120 --> 00:11:48,050
‫Okay?

260
00:11:48,050 --> 00:11:50,720
‫Then, admins should be able to update

261
00:11:50,720 --> 00:11:53,700
‫or to delete reviews, just like regular users,

262
00:11:53,700 --> 00:11:56,060
‫of course, so that they can then edit

263
00:11:56,060 --> 00:11:58,150
‫or delete their own reviews.

264
00:11:58,150 --> 00:12:02,220
‫And finally, guides can not add, edit, or delete reviews.

265
00:12:02,220 --> 00:12:06,060
‫Since the guides are the ones who are performing the job,

266
00:12:06,060 --> 00:12:08,610
‫so it would be weird if they could post reviews

267
00:12:08,610 --> 00:12:12,120
‫themselves, or edit other peoples' reviews, right?

268
00:12:12,120 --> 00:12:16,110
‫And so let's put what we just described into code.

269
00:12:16,110 --> 00:12:18,530
‫So, basically patch and delete

270
00:12:20,360 --> 00:12:21,800
‫are restricted

271
00:12:23,680 --> 00:12:25,053
‫to users,

272
00:12:26,840 --> 00:12:29,573
‫or actually just user, and admin.

273
00:12:33,160 --> 00:12:36,893
‫And then the same thing for deleting.

274
00:12:38,400 --> 00:12:39,233
‫Okay?

275
00:12:39,233 --> 00:12:41,970
‫And so you see that now guides and lead guides

276
00:12:41,970 --> 00:12:44,810
‫have nothing to do at all with reviews.

277
00:12:44,810 --> 00:12:47,620
‫All they can do is to really get reviews,

278
00:12:47,620 --> 00:12:51,260
‫but not changing or posting them at all, okay?

279
00:12:51,260 --> 00:12:53,800
‫And so, quickly now in Postman,

280
00:12:53,800 --> 00:12:55,463
‫let's put that here as well.

281
00:12:56,400 --> 00:13:00,283
‫So create new reviews already has the authorization,

282
00:13:01,390 --> 00:13:03,633
‫get all reviews also needs it now.

283
00:13:05,550 --> 00:13:08,803
‫So, with the bearer token, save that,

284
00:13:13,530 --> 00:13:15,623
‫here, the bearer token as well.

285
00:13:21,510 --> 00:13:25,633
‫Now write, and also get one single review.

286
00:13:31,360 --> 00:13:33,820
‫Actually let's nicely order this as well,

287
00:13:33,820 --> 00:13:36,783
‫so that all of them are kind of in the same order.

288
00:13:39,300 --> 00:13:41,740
‫And now about these two here, they actually

289
00:13:41,740 --> 00:13:43,900
‫are also protected.

290
00:13:43,900 --> 00:13:44,733
‫Right?

291
00:13:44,733 --> 00:13:46,610
‫Because ultimately it's the review handlers

292
00:13:46,610 --> 00:13:48,803
‫that are actually called for both of them.

293
00:13:49,920 --> 00:13:53,483
‫And so here we also need to add that bearer token.

294
00:13:55,060 --> 00:13:55,893
‫Okay?

295
00:13:55,893 --> 00:13:58,320
‫So now, basically, the only way of getting access

296
00:13:58,320 --> 00:14:03,320
‫to data about reviews is to call all of the tours.

297
00:14:03,350 --> 00:14:04,183
‫Right?

298
00:14:04,183 --> 00:14:07,460
‫At least for people that are not authenticated.

299
00:14:07,460 --> 00:14:08,450
‫Okay?

300
00:14:08,450 --> 00:14:11,380
‫So, let's close all of this,

301
00:14:11,380 --> 00:14:14,470
‫and so I think we're now good to go,

302
00:14:14,470 --> 00:14:16,890
‫and we actually finished this part as well.

303
00:14:16,890 --> 00:14:18,940
‫Let's just clean it up here a little bit.

304
00:14:20,210 --> 00:14:23,610
‫And yeah, I think that's it.

305
00:14:23,610 --> 00:14:26,340
‫So with this we actually finished the authentication

306
00:14:26,340 --> 00:14:30,070
‫and authorization parts of all our three resources,

307
00:14:30,070 --> 00:14:33,040
‫so we're really close to finishing our API here.

308
00:14:33,040 --> 00:14:35,920
‫There's only a small amount of things left to do,

309
00:14:35,920 --> 00:14:37,520
‫and so we're going to do all of that

310
00:14:37,520 --> 00:14:39,103
‫in the rest of this section.

