1
00:00:03,550 --> 00:00:06,360
Trong bài tập trước,

2
00:00:06,360 --> 00:00:10,860
chúng ta đã thấy cách dễ dàng cho chúng ta để cấu hình và sau đó

3
00:00:10,860 --> 00:00:15,950
giàn giáo ra một máy chủ người nhận bằng cách sử dụng khuôn khổ LoopBack.

4
00:00:15,950 --> 00:00:20,895
Chúng tôi thấy rằng khuôn khổ LoopBack này hỗ trợ toàn bộ quang phổ

5
00:00:20,895 --> 00:00:23,040
của các điểm cuối người nhận và

6
00:00:23,040 --> 00:00:26,324
tất cả các hoạt động của các điểm cuối người nhận tự động cho chúng tôi,

7
00:00:26,324 --> 00:00:28,590
khi chúng tôi giàn giáo ra ứng dụng của chúng tôi.

8
00:00:28,590 --> 00:00:31,755
Trong bài tập này, chúng ta sẽ xem xét làm thế nào chúng ta có thể kết nối

9
00:00:31,755 --> 00:00:35,800
máy chủ LoopBack của chúng tôi với một cơ sở dữ liệu back-end,

10
00:00:35,800 --> 00:00:38,926
hoặc MongoDB trong trường hợp này,

11
00:00:38,926 --> 00:00:45,565
và chúng ta cũng sẽ thấy làm thế nào chúng ta có thể thiết lập các điều khiển truy cập khác nhau trên các điểm cuối của người nhận.

12
00:00:45,565 --> 00:00:47,575
Vì vậy, bằng cách sử dụng các điều khiển truy cập,

13
00:00:47,575 --> 00:00:52,010
chúng ta có thể xác định loại hoạt động nào có thể được thực hiện trên các điểm cuối của người nhận,

14
00:00:52,010 --> 00:00:56,730
và ai sẽ được phép thực hiện các hoạt động đó.

15
00:00:56,730 --> 00:01:02,385
Vì vậy, ví dụ, một người dùng chưa xác thực hoặc một khách chỉ có thể

16
00:01:02,385 --> 00:01:08,666
truy cập thông tin hoặc thực hiện một thao tác get trên các điểm cuối của người nhận,

17
00:01:08,666 --> 00:01:13,484
một người dùng xác thực sẽ có thể cũng làm như vậy,

18
00:01:13,484 --> 00:01:21,240
nhưng chỉ có một quản trị viên mới có thể ghi dữ liệu vào máy chủ của tôi.

19
00:01:21,240 --> 00:01:27,025
Vì vậy, bất kỳ hoạt động đặt, đăng và xóa chỉ có thể được thực hiện bởi một quản trị viên.

20
00:01:27,025 --> 00:01:32,535
Trên đường đi, chúng ta cũng sẽ thấy cách chúng ta có thể thiết lập một tài khoản quản trị trong máy chủ LoopBack của chúng tôi,

21
00:01:32,535 --> 00:01:35,250
và sau đó cấu hình nó để

22
00:01:35,250 --> 00:01:38,880
chỉ người dùng quản trị sẽ được phép thực hiện các thao tác này.

23
00:01:38,880 --> 00:01:42,246
Vì vậy, đây là nơi LoopBack cho phép chúng ta xác định một cái gì đó

24
00:01:42,246 --> 00:01:46,080
được gọi là vai trò liên kết với nhiều người dùng khác nhau.

25
00:01:46,080 --> 00:01:48,645
Vì vậy, mỗi người dùng có thể được gán một vai trò.

26
00:01:48,645 --> 00:01:52,170
Ví dụ, bạn có thể nói về một người dùng thông thường,

27
00:01:52,170 --> 00:01:55,915
một quản trị viên, một quản trị viên siêu và như vậy.

28
00:01:55,915 --> 00:02:00,675
Vì vậy, bạn có thể chia nhỏ tập hợp người dùng của bạn thành các nhóm khác nhau,

29
00:02:00,675 --> 00:02:03,793
và sau đó gán các vai trò khác nhau cho họ.

30
00:02:03,793 --> 00:02:09,885
Ngoài ra, chúng ta sẽ xem xét làm thế nào mô hình người dùng tích hợp có thể được tùy chỉnh hơn nữa,

31
00:02:09,885 --> 00:02:11,790
trong ứng dụng LoopBack của chúng tôi,

32
00:02:11,790 --> 00:02:16,290
và làm thế nào chúng tôi có thể xây dựng một mô hình khác trên đầu trang của mô hình người

33
00:02:16,290 --> 00:02:19,710
dùng, và sau đó sử dụng mô hình người dùng làm lớp cơ sở

34
00:02:19,710 --> 00:02:23,400
và phát triển một mô hình cấp cao hơn được gọi là Mô hình khách hàng

35
00:02:23,400 --> 00:02:27,060
, cho phép chúng tôi lưu trữ thêm thông tin cho mỗi

36
00:02:27,060 --> 00:02:30,999
khách hàng sẽ đăng nhập vào trang web của chúng tôi.

37
00:02:30,999 --> 00:02:38,040
Vì vậy, chúng ta hãy khám phá một số tính năng của LoopBack trong bài tập này.

38
00:02:38,040 --> 00:02:40,830
Để bắt đầu bài tập này,

39
00:02:40,830 --> 00:02:42,645
điều đầu tiên mà tôi muốn bạn làm,

40
00:02:42,645 --> 00:02:44,040
là khởi động máy chủ MongoDB của bạn.

41
00:02:44,040 --> 00:02:49,545
Vì vậy, ở đây tôi đang ở trong một tab thiết bị đầu cuối trong thư mục MongoDB của tôi,

42
00:02:49,545 --> 00:02:52,950
nơi tôi cấu hình máy chủ MongoDB của tôi trước

43
00:02:52,950 --> 00:02:59,065
đó, được sử dụng bởi máy chủ Express Plus MongoDB của tôi trong các bài tập trước đó.

44
00:02:59,065 --> 00:03:03,775
Vì vậy, hãy để tôi khởi động máy chủ MongoDB bằng cách gõ

45
00:03:03,775 --> 00:03:11,190
MonGod trừ dữ liệu phần D-B

46
00:03:11,190 --> 00:03:15,334
trong thư mục này và sau đó khởi động máy chủ MongoDB của tôi.

47
00:03:15,334 --> 00:03:20,005
Bây giờ, tôi sẽ kết nối máy chủ LoopBack của tôi với máy chủ MongoDB của tôi.

48
00:03:20,005 --> 00:03:23,920
Vì vậy, đi vào thư mục máy chủ LoopBack của

49
00:03:23,920 --> 00:03:28,560
tôi ở đây, tôi phải nhắc loại nguồn dữ liệu L-B.

50
00:03:28,560 --> 00:03:32,820
Điều này sẽ cho phép chúng tôi cấu hình nguồn dữ liệu cho máy chủ LoopBack của chúng tôi.

51
00:03:32,820 --> 00:03:39,460
LoopBack chính nó có thể đồng thời kết nối với nhiều nguồn dữ liệu nếu bạn chọn,

52
00:03:39,460 --> 00:03:41,843
và nó hỗ trợ các loại khác nhau.

53
00:03:41,843 --> 00:03:46,800
Nó hỗ trợ cơ sở dữ liệu My Cycle, nó hỗ trợ MongoDB,

54
00:03:46,800 --> 00:03:52,175
nó hỗ trợ Cloudant cũng là một cơ sở dữ liệu tài liệu khác,

55
00:03:52,175 --> 00:03:58,410
nó hỗ trợ Oracle, và nhiều loại cơ sở dữ liệu khác.

56
00:03:58,410 --> 00:04:01,830
Vì vậy, bạn có thể dễ dàng cấu hình điều đó.

57
00:04:01,830 --> 00:04:04,620
Trong ví dụ này, tôi sẽ cấu hình máy chủ LoopBack của

58
00:04:04,620 --> 00:04:07,810
tôi để nói chuyện với MongoDB của tôi trong back-end.

59
00:04:07,810 --> 00:04:09,445
Vì vậy, tại dấu nhắc,

60
00:04:09,445 --> 00:04:11,590
nếu chúng ta gõ nguồn dữ liệu L-B,

61
00:04:11,590 --> 00:04:14,610
nó sẽ nhắc chúng ta thông tin.

62
00:04:14,610 --> 00:04:18,155
Vì vậy, điều đầu tiên nó sẽ yêu cầu chúng tôi là cho tên nguồn dữ liệu,

63
00:04:18,155 --> 00:04:24,570
và sau đó tôi sẽ cấu hình tên nguồn dữ liệu này như MongoDB,

64
00:04:24,570 --> 00:04:29,315
và sau đó nó sẽ nhắc tôi chọn các kết nối.

65
00:04:29,315 --> 00:04:36,120
LoopBack sử dụng các kết nối để kết nối với các cơ sở dữ liệu khác nhau đằng sau hậu trường.

66
00:04:36,120 --> 00:04:38,790
Vì vậy, như bạn có thể thấy, trong bộ nhớ DB đó là một trong những mà

67
00:04:38,790 --> 00:04:41,795
họ chỉ sử dụng trong bài tập trước đó,

68
00:04:41,795 --> 00:04:45,105
nhưng tất nhiên trong bộ nhớ DB có nghĩa là một khi bạn tắt máy chủ của bạn,

69
00:04:45,105 --> 00:04:47,220
tất cả các giá trị sẽ được biến mất,

70
00:04:47,220 --> 00:04:51,080
và vì vậy đó không phải là một lưu trữ dữ liệu liên tục.

71
00:04:51,080 --> 00:04:58,440
Vì vậy, ở đây bạn thấy các loại cơ sở dữ liệu khác nhau mà StrongLoop hỗ trợ ở đây.

72
00:04:58,440 --> 00:05:06,720
Vì vậy, bạn có thể xem danh sách dài của các cơ sở dữ liệu khác nhau được hỗ trợ.

73
00:05:06,720 --> 00:05:09,280
Vì vậy, bạn có thể thấy rằng nó hỗ trợ Cassandra, Redis,

74
00:05:09,280 --> 00:05:15,360
chúng tôi đã đề cập ngắn gọn đến những khi chúng tôi nói về cơ sở dữ liệu NoSQL, MongoDB,

75
00:05:15,360 --> 00:05:18,385
SQL của tôi, PostGres, Oracle,

76
00:05:18,385 --> 00:05:24,325
và thậm chí trực tiếp đến các máy chủ API Rest khác để máy chủ SOAP,

77
00:05:24,325 --> 00:05:26,865
Coachbase và vân vân.

78
00:05:26,865 --> 00:05:29,040
Vì vậy, bạn thấy rằng nó cung cấp cho chúng tôi

79
00:05:29,040 --> 00:05:33,450
một danh sách dài các loại nguồn dữ liệu từ đó,

80
00:05:33,450 --> 00:05:36,783
máy chủ LoopBack của chúng tôi có thể đọc thông tin.

81
00:05:36,783 --> 00:05:39,835
Trong trường hợp của tôi, tôi sẽ sử dụng máy chủ MongoDB vì vậy

82
00:05:39,835 --> 00:05:43,170
tôi sẽ thiết lập đầu nối MongoDB.

83
00:05:43,170 --> 00:05:44,660
Vì vậy, khi tôi làm điều đó,

84
00:05:44,660 --> 00:05:50,775
LoopBack sẽ tự động cài đặt kết nối MongoDB cho chúng tôi,

85
00:05:50,775 --> 00:05:54,550
và khi nó yêu cầu URL chuỗi kết nối,

86
00:05:54,550 --> 00:05:57,810
chúng tôi sẽ chỉ để lại điều này là trống rỗng bởi vì chúng tôi sẽ cho

87
00:05:57,810 --> 00:06:01,570
phép nó sử dụng cách cấu hình chuẩn.

88
00:06:01,570 --> 00:06:04,550
Khi nó yêu cầu máy chủ chúng tôi sẽ nói

89
00:06:04,550 --> 00:06:09,815
localhost bởi vì chúng tôi đang chạy MongoDB của chúng tôi trên cùng một máy tính.

90
00:06:09,815 --> 00:06:11,260
Nếu không, bạn sẽ chỉ

91
00:06:11,260 --> 00:06:16,275
định tên máy chủ của máy tính mà bạn đang chạy MongoDB.

92
00:06:16,275 --> 00:06:20,080
Sau đó, một trong những tiếp theo là số cổng và chúng tôi đang

93
00:06:20,080 --> 00:06:24,665
sử dụng số cổng MongoDB tiêu chuẩn của chúng tôi 27017,

94
00:06:24,665 --> 00:06:29,186
và nó cũng sẽ yêu cầu tên người dùng và mật khẩu nếu cần thiết,

95
00:06:29,186 --> 00:06:32,770
và ngay bây giờ MongoDB của tôi đang chạy mà không cần phải

96
00:06:32,770 --> 00:06:36,850
làm bất kỳ xác thực vì vậy tôi để lại tên người dùng và mật khẩu trống,

97
00:06:36,850 --> 00:06:38,575
và tên cơ sở dữ liệu.

98
00:06:38,575 --> 00:06:44,490
Tên cơ sở dữ liệu trên máy chủ MongoDB đang chạy đằng sau hậu trường,

99
00:06:44,490 --> 00:06:47,390
tên cơ sở dữ liệu có sự nhầm lẫn.

100
00:06:47,390 --> 00:06:52,040
Nếu bạn nhớ lại đó là tên cơ sở dữ liệu mà họ đã thiết lập trên máy chủ MongoDB của chúng tôi.

101
00:06:52,040 --> 00:06:56,900
Và sau đó nó sẽ hỏi chúng ta liệu nó có nên cài đặt kết nối LoopBack,

102
00:06:56,900 --> 00:06:58,750
và tôi sẽ nói có,

103
00:06:58,750 --> 00:07:02,410
và thực sự sẽ đi trước và cài đặt mô-đun NPM mà truy cập vào

104
00:07:02,410 --> 00:07:07,715
kết nối LoopBack vào cơ sở dữ liệu MongoDB.

105
00:07:07,715 --> 00:07:09,415
Và một khi điều đó được thực hiện,

106
00:07:09,415 --> 00:07:14,630
kết nối Loopback của tôi được cài đặt ở đây để bạn có thể thấy rằng đây là phiên bản 1.18.1

107
00:07:14,630 --> 00:07:19,910
và máy chủ LoopBack của tôi đã sẵn sàng để nói chuyện với MongoDB của tôi.

108
00:07:19,910 --> 00:07:22,615
Bây giờ trước khi tôi tiến hành về

109
00:07:22,615 --> 00:07:26,090
phía trước, trong bài tập trước tôi không thực sự cấu hình một số mô hình

110
00:07:26,090 --> 00:07:30,115
và sau đó tôi chỉ định chúng được lưu trữ trong DB,

111
00:07:30,115 --> 00:07:35,295
tôi sẽ cần phải đi và cập nhật chúng để lưu trữ dữ liệu của họ trong MongoDB của tôi.

112
00:07:35,295 --> 00:07:41,610
Vì vậy, chúng ta hãy đi và nhanh chóng đặt lại mã của chúng tôi cho máy chủ LoopBack.

113
00:07:41,610 --> 00:07:44,770
Điều này cũng cung cấp cho chúng tôi một cơ hội để xem

114
00:07:44,770 --> 00:07:49,030
những gì máy chủ Loopback của tôi đã cấu hình trong thư mục này.

115
00:07:49,030 --> 00:07:54,730
Mở thư mục LoopBack trong trình soạn thảo của chúng tôi,

116
00:07:54,730 --> 00:07:58,200
bạn có thể thấy rằng Loopback đã

117
00:07:58,200 --> 00:08:02,000
giàn giáo ra một loạt các tập tin vào thư mục này.

118
00:08:02,000 --> 00:08:04,080
Các package.json tất nhiên chứa

119
00:08:04,080 --> 00:08:10,275
tất cả các mô-đun NPM liên quan đã được cấu hình ra ở đây,

120
00:08:10,275 --> 00:08:17,901
và ở đây bạn có thể thấy rằng LoopBack chính nó đã cấu hình ra mô-đun NPM LoopBack,

121
00:08:17,901 --> 00:08:20,970
mô-đun khởi động LoopBack và

122
00:08:20,970 --> 00:08:24,840
đặc biệt cho phép tôi thu hút sự chú ý của bạn đến LoopBack MongoDB kết nối,

123
00:08:24,840 --> 00:08:32,055
rằng chúng tôi vừa cài đặt một thời gian ngắn trước đây, và nhiều người khác.

124
00:08:32,055 --> 00:08:36,150
Đặc biệt cấu hình cho máy chủ Loopback được

125
00:08:36,150 --> 00:08:40,075
lưu trữ chủ yếu trong các tập tin Json ở đây,

126
00:08:40,075 --> 00:08:44,970
với javascriptcore bổ sung bất cứ khi nào cần thiết.

127
00:08:44,970 --> 00:08:50,670
Chúng tôi sẽ tìm kiếm tùy biến mã javascript một chút sau đó.

128
00:08:50,670 --> 00:08:53,875
Hãy để tôi thu hút sự chú ý của bạn vào thư mục này được gọi là phổ biến.

129
00:08:53,875 --> 00:08:55,850
Trong thư mục chung này,

130
00:08:55,850 --> 00:09:01,725
bạn sẽ thấy tất cả các mô hình mà chúng tôi đã cấu hình ra trước đó.

131
00:09:01,725 --> 00:09:04,860
Vì vậy, bạn sẽ thấy rằng chúng tôi có các tập tin Dishes.json.

132
00:09:04,860 --> 00:09:09,210
Vì vậy, khi bạn mở tập tin dishes.json, bạn thấy cách LoopBack

133
00:09:09,210 --> 00:09:14,695
lưu trữ tất cả các thông tin về mô hình món ăn mà bạn vừa tạo ra,

134
00:09:14,695 --> 00:09:17,790
vì vậy nó có tên, cơ sở

135
00:09:17,790 --> 00:09:21,655
và một số giá trị khác ở đây mà nó yêu cầu.

136
00:09:21,655 --> 00:09:27,369
Và sau đó nhìn vào các thuộc tính và làm thế nào tất cả các thuộc tính được lưu trữ ở đây.

137
00:09:27,369 --> 00:09:30,735
Vì vậy, bạn thấy một số điều rất dễ dàng để bạn

138
00:09:30,735 --> 00:09:34,790
nhận ra chúng đang ở trong tập tin dishes.json.

139
00:09:34,790 --> 00:09:39,040
Tương tự như vậy, leaders.json và promotions.json.

140
00:09:39,040 --> 00:09:42,171
Các tập tin dishes.js là lớn,

141
00:09:42,171 --> 00:09:46,007
chúng tôi có thể thêm vào một số mã tùy chỉnh bổ sung cho các món ăn,

142
00:09:46,007 --> 00:09:48,050
nhưng ngay bây giờ chúng tôi sẽ không làm điều đó,

143
00:09:48,050 --> 00:09:50,755
và vì vậy chúng tôi sẽ chỉ để nó như là.

144
00:09:50,755 --> 00:09:56,130
Vì vậy, đây là nơi bạn có thể thêm vào một số mã bổ sung mà có thể

145
00:09:56,130 --> 00:10:02,610
cần phải được thực hiện khi bạn truy cập vào các món ăn gạch chéo điểm kết thúc.

146
00:10:02,610 --> 00:10:07,630
Nhưng ngay bây giờ chúng ta sẽ để nó trống cho thời điểm này.

147
00:10:07,630 --> 00:10:11,725
Bây giờ chúng ta cũng hãy nhìn vào thư mục máy chủ ở đây.

148
00:10:11,725 --> 00:10:13,465
Và thư mục máy chủ,

149
00:10:13,465 --> 00:10:18,745
đặc biệt cho phép tôi thu hút sự chú ý của bạn đến tập tin datasources.json ở đây.

150
00:10:18,745 --> 00:10:20,996
Trong file sources.json dữ liệu,

151
00:10:20,996 --> 00:10:23,740
tất cả các nguồn dữ liệu khác nhau sẽ được cấu hình ở đây.

152
00:10:23,740 --> 00:10:26,470
Vì vậy, ngay bây giờ, chúng tôi chỉ có DB đó là

153
00:10:26,470 --> 00:10:31,634
cơ sở dữ liệu trong bộ nhớ DB mà LoopBack theo mặc định cấu hình,

154
00:10:31,634 --> 00:10:34,045
và sau đó MongoDB mà chúng tôi chỉ cần cấu hình,

155
00:10:34,045 --> 00:10:36,700
chỉ hấp thụ các thông tin mà đầu vào

156
00:10:36,700 --> 00:10:40,570
đã được lưu trữ vào nguồn dữ liệu đó, tập tin json.

157
00:10:40,570 --> 00:10:46,880
Vì vậy, bạn sẽ thấy rằng LoopBack chính nó hoạt động bằng cách cấu hình tất cả

158
00:10:46,880 --> 00:10:50,493
các tập tin mà LoopBack framework chính nó sử dụng khi nó

159
00:10:50,493 --> 00:10:56,332
khởi động máy chủ API phần còn lại dựa trên LoopBack.

160
00:10:56,332 --> 00:11:00,620
Hãy đi vào tập tin config.json mô hình ở đây.

161
00:11:00,620 --> 00:11:03,050
Các tập tin config.json mô hình

162
00:11:03,050 --> 00:11:09,028
lưu trữ rất nhiều thông tin ở đây rất hữu ích cho chúng tôi,

163
00:11:09,028 --> 00:11:13,810
nhưng ở đây, chúng ta hãy đi vào và sửa đổi một vài điều.

164
00:11:13,810 --> 00:11:20,500
Vì vậy, vào này, chúng ta sẽ thấy rằng có một lần nữa cho các món ăn,

165
00:11:20,500 --> 00:11:24,965
chương trình khuyến mãi và các nhà lãnh đạo, nguồn dữ liệu đã được cấu hình như DB.

166
00:11:24,965 --> 00:11:32,150
Vì vậy, chúng tôi sẽ sửa đổi điều đó để MongoDB ở đây.

167
00:11:32,150 --> 00:11:34,700
Không chỉ cho điều này,

168
00:11:34,700 --> 00:11:39,053
họ cũng sẽ thay đổi điều đó cho các chương trình khuyến mãi, và cả các nhà lãnh đạo

169
00:11:39,053 --> 00:11:45,590
, có nghĩa là, tất cả ba sẽ lấy được dữ liệu của họ từ MongoDB.

170
00:11:45,590 --> 00:11:48,720
Ngoài ra, đối với vai trò được định nghĩa ở đây.

171
00:11:48,720 --> 00:11:50,170
Chúng tôi cũng sẽ lưu trữ trong MongoDB.

172
00:11:50,170 --> 00:11:53,635
Chúng tôi sẽ sớm thấy cách chúng tôi sẽ sử dụng Vai trò,

173
00:11:53,635 --> 00:11:56,290
và cũng RoleMapping ở đây.

174
00:11:56,290 --> 00:12:00,675
Chúng ta sẽ hiểu lý do của hai người này trong một thời gian ngắn.

175
00:12:00,675 --> 00:12:04,030
Và sau đó, ACL, Danh sách điều khiển truy cập,

176
00:12:04,030 --> 00:12:07,740
chúng cũng sẽ được lưu trữ trong MongoDB.

177
00:12:07,740 --> 00:12:10,210
Và sau đó, người dùng, cũng,

178
00:12:10,210 --> 00:12:12,105
chúng tôi sẽ lưu trữ nó trong MongoDB,

179
00:12:12,105 --> 00:12:13,848
và sau đó họ sẽ để nó ở đó.

180
00:12:13,848 --> 00:12:17,175
Vì vậy, đây là những sửa đổi mà bạn nên làm cho

181
00:12:17,175 --> 00:12:23,744
các tập tin model-config.json và sau đó lưu các thay đổi.

182
00:12:23,744 --> 00:12:27,239
Như tôi đã đề cập trước đó, Loopback theo mặc định,

183
00:12:27,239 --> 00:12:29,705
hỗ trợ mô hình này được gọi là, người dùng,

184
00:12:29,705 --> 00:12:33,215
được sử dụng để hỗ trợ xác thực người dùng.

185
00:12:33,215 --> 00:12:36,890
Bản thân mô hình người dùng chỉ lưu trữ ba thuộc tính khác nhau.

186
00:12:36,890 --> 00:12:40,100
Tên người dùng, địa chỉ email

187
00:12:40,100 --> 00:12:42,890
và thông tin liên quan đến mật khẩu.

188
00:12:42,890 --> 00:12:44,060
Bây giờ, nếu họ muốn có

189
00:12:44,060 --> 00:12:49,125
một cách phức tạp hơn để lưu trữ thêm thông tin về người dùng.

190
00:12:49,125 --> 00:12:54,200
Sau đó, họ có thể phân lớp mô hình cơ sở người dùng này,

191
00:12:54,200 --> 00:12:56,180
và sau đó sử dụng nó.

192
00:12:56,180 --> 00:12:57,950
Vì vậy, trong bước tiếp theo này,

193
00:12:57,950 --> 00:13:01,880
tôi sẽ tạo ra một mô hình khác được gọi là mô hình khách hàng,

194
00:13:01,880 --> 00:13:08,490
mà sẽ sử dụng người dùng làm mô hình cơ sở cho hoạt động của nó.

195
00:13:08,490 --> 00:13:13,005
Và bản thân mô hình khách hàng sẽ lưu trữ thêm thông tin về người dùng.

196
00:13:13,005 --> 00:13:14,255
Vì vậy, trong mô hình khách hàng,

197
00:13:14,255 --> 00:13:16,820
tôi sẽ lưu trữ những thứ như tên,

198
00:13:16,820 --> 00:13:20,900
họ, và hình ảnh cho người dùng và vân vân.

199
00:13:20,900 --> 00:13:24,035
Vì vậy, khách hàng sẽ hành động chính xác giống như mô hình người dùng

200
00:13:24,035 --> 00:13:29,889
, đã đi kèm với tập hợp các phương pháp riêng của mình.

201
00:13:29,889 --> 00:13:32,780
Và do đó, mô hình người dùng được sử dụng để xác thực người dùng,

202
00:13:32,780 --> 00:13:34,700
vì vậy bạn có thể nhập tên người dùng và mật khẩu,

203
00:13:34,700 --> 00:13:35,930
và đăng nhập và đăng xuất.

204
00:13:35,930 --> 00:13:41,850
Vì vậy, khi chúng tôi tạo ra mô hình khách hàng này dựa trên lớp cơ sở của mô hình người dùng, mô

205
00:13:41,850 --> 00:13:44,742
hình khách hàng cũng sẽ hỗ trợ việc đăng nhập và đăng xuất các

206
00:13:44,742 --> 00:13:47,680
hoạt động bằng cách sử dụng mô hình khách hàng này.

207
00:13:47,680 --> 00:13:51,880
Vì vậy, chúng ta có thể đăng nhập vào người dùng và đăng xuất người dùng và như vậy.

208
00:13:51,880 --> 00:13:56,520
Vì vậy, xác thực người dùng tự động đến cho quyền.

209
00:13:56,520 --> 00:13:59,750
Vì vậy, để tạo mô hình khách hàng, tại dấu nhắc,

210
00:13:59,750 --> 00:14:03,340
gõ mô hình lb và cho tên mô hình,

211
00:14:03,340 --> 00:14:06,440
chúng tôi sẽ nhập Customer.

212
00:14:06,440 --> 00:14:10,700
Và DataSource, tôi sẽ chọn nó như MongoDB.

213
00:14:10,700 --> 00:14:15,080
Và sau đó khi nó yêu cầu chọn lớp cơ sở

214
00:14:15,080 --> 00:14:17,435
của mô hình, thay vì sử dụng PersistedModel,

215
00:14:17,435 --> 00:14:18,875
chúng ta sẽ di chuyển xuống,

216
00:14:18,875 --> 00:14:23,570
và sau đó chọn User làm lớp cơ sở.

217
00:14:23,570 --> 00:14:27,215
Vì vậy, theo cách đó, nó sẽ lấy được tất cả các thuộc tính

218
00:14:27,215 --> 00:14:31,275
của họ của lớp người dùng cơ sở đã được xây dựng vào Loopback.

219
00:14:31,275 --> 00:14:35,370
Và sau đó chúng tôi sẽ phơi bày điều này với REST API,

220
00:14:35,370 --> 00:14:39,353
và tùy chỉnh số nhiều MT.

221
00:14:39,353 --> 00:14:42,765
Và sau đó điều này sẽ nằm trong thư mục chung.

222
00:14:42,765 --> 00:14:49,081
Và cho điều này, ba thuộc tính mà chúng tôi sẽ thêm là,

223
00:14:49,081 --> 00:14:54,900
tên đầu tiên, mà chúng ta sẽ có các loại chuỗi.

224
00:14:54,900 --> 00:14:58,700
Và điều này không bắt buộc hoặc không có giá trị mặc định.

225
00:14:58,700 --> 00:15:05,895
Và sau đó, họ một lần nữa là chuỗi loại,

226
00:15:05,895 --> 00:15:08,825
không bắt buộc, và không có giá trị mặc định.

227
00:15:08,825 --> 00:15:11,860
Và sau đó hình ảnh của chuỗi loại,

228
00:15:11,860 --> 00:15:15,249
không bắt buộc và không có giá trị mặc định.

229
00:15:15,249 --> 00:15:18,095
Vì vậy, bạn thấy rằng lớp khách hàng chính nó

230
00:15:18,095 --> 00:15:22,546
mang các thuộc tính bổ sung ngoài lớp người dùng.

231
00:15:22,546 --> 00:15:25,006
lớp người dùng đã hỗ trợ tên người dùng,

232
00:15:25,006 --> 00:15:28,465
email và thông tin liên quan đến mật khẩu trong đó.

233
00:15:28,465 --> 00:15:30,185
Vì vậy, lớp khách hàng,

234
00:15:30,185 --> 00:15:32,030
vì lớp phụ là lớp cơ sở,

235
00:15:32,030 --> 00:15:38,405
chúng tôi sẽ nhận được tên người dùng và email tự động từ lớp người dùng.

236
00:15:38,405 --> 00:15:41,870
Và bây giờ, khi bạn đi đến tập tin model-config.jason,

237
00:15:41,870 --> 00:15:46,725
bạn sẽ thấy rằng mô hình Customer đã được thêm vào trong đó.

238
00:15:46,725 --> 00:15:48,390
Và sau đó trong các mô hình phổ biến,

239
00:15:48,390 --> 00:15:51,278
bây giờ bạn sẽ thấy tập tin customer.json được thêm vào đó

240
00:15:51,278 --> 00:15:55,365
với ba thuộc tính bổ sung mà chúng tôi đã thêm vào mô hình khách hàng.

241
00:15:55,365 --> 00:16:02,020
Nhưng lưu ý, rằng nó chỉ định cơ sở như là lớp người dùng cho mô hình khách hàng ở đây.

242
00:16:02,020 --> 00:16:04,760
Vì vậy, đó là cách Loopback cho phép bạn lấy

243
00:16:04,760 --> 00:16:09,832
một lớp cơ sở mô hình và sau đó phân lớp đó vào lớp model.

244
00:16:09,832 --> 00:16:16,340
Vì vậy, bạn sẽ thấy làm thế nào Loopback cho phép chúng tôi tự động hỗ trợ xác thực người

245
00:16:16,340 --> 00:16:23,855
dùng bằng cách sử dụng lớp người dùng và sau đó cho phép chúng tôi thậm chí xác định lớp con bổ sung của

246
00:16:23,855 --> 00:16:29,780
nó, mà sẽ lưu trữ thêm thông tin liên quan đến lớp cơ sở người dùng.

247
00:16:29,780 --> 00:16:32,660
Tiếp theo, chúng tôi sẽ thiết lập Access Control cho

248
00:16:32,660 --> 00:16:38,210
các mô hình khác nhau mà chúng tôi đã thiết lập trong máy chủ Loopback của chúng tôi.

249
00:16:38,210 --> 00:16:40,190
Vì vậy, để thiết lập Access Control,

250
00:16:40,190 --> 00:16:45,170
hoặc Danh sách điều khiển truy cập trong Lookback.

251
00:16:45,170 --> 00:16:49,730
Loopback sử dụng các danh sách điều khiển truy cập như một cách để xác định loại

252
00:16:49,730 --> 00:16:51,290
hoạt động nào có thể được thực hiện trên

253
00:16:51,290 --> 00:16:55,280
các điểm cuối REST API khác nhau tương ứng với các mô hình khác nhau.

254
00:16:55,280 --> 00:16:58,695
Vì vậy, để làm điều đó, chúng ta sẽ gõ tại dấu nhắc lb acl,

255
00:16:58,695 --> 00:17:01,880
ACL là viết tắt của Access Control Lists.

256
00:17:01,880 --> 00:17:06,980
Và sau đó, khi điều này hết, chúng tôi sẽ nói,

257
00:17:06,980 --> 00:17:11,960
mô hình mà chúng tôi muốn Danh sách điều khiển truy cập này được áp dụng cho.

258
00:17:11,960 --> 00:17:14,678
Và sau đó chúng ta sẽ nói, tất cả các mô hình hiện có.

259
00:17:14,678 --> 00:17:18,845
Và chúng ta sẽ nói, Tất cả các số liệu và tài sản.

260
00:17:18,845 --> 00:17:20,810
Và chúng tôi sẽ nói,

261
00:17:20,810 --> 00:17:23,233
Tất cả các loại hoạt động.

262
00:17:23,233 --> 00:17:25,910
Và sau đó, chúng ta sẽ nói, Tất cả người dùng.

263
00:17:25,910 --> 00:17:28,730
Và sau đó chúng ta sẽ nói, Rõ ràng từ chối truy cập.

264
00:17:28,730 --> 00:17:32,976
Vì vậy, trước tiên chúng tôi đóng tất cả các mô hình cho tất cả mọi thứ,

265
00:17:32,976 --> 00:17:34,670
sau đó chúng tôi sẽ từ từ mở ra,

266
00:17:34,670 --> 00:17:38,270
bất kỳ hoạt động nào có thể được thực hiện bởi những người dùng khác nhau.

267
00:17:38,270 --> 00:17:40,385
Vì vậy, bước đầu tiên, chúng tôi đã đóng cửa

268
00:17:40,385 --> 00:17:45,715
tất cả các loại hoạt động trên tất cả các mô hình mà chúng tôi hiện có.

269
00:17:45,715 --> 00:17:51,740
Sau đó, chúng tôi sẽ từ từ bắt đầu mở từng và mọi hoạt động, từng bước.

270
00:17:51,740 --> 00:17:53,300
Bây giờ, bước tiếp theo,

271
00:17:53,300 --> 00:17:59,960
những gì chúng tôi sẽ làm là thiết lập lại Danh sách Kiểm soát Truy cập tiếp theo.

272
00:17:59,960 --> 00:18:02,525
Trong Danh sách Kiểm soát Truy cập thứ hai, chúng ta sẽ nói,

273
00:18:02,525 --> 00:18:06,095
cho tất cả các mô hình hiện có và chúng ta sẽ nói,

274
00:18:06,095 --> 00:18:08,930
Tất cả các chỉ số và thuộc tính.

275
00:18:08,930 --> 00:18:13,400
Và sau đó, chúng tôi sẽ nói, chỉ đọc truy cập. Có

276
00:18:13,400 --> 00:18:18,416
nghĩa là, khi người dùng có thể thực hiện các thao tác GET trên các cổng kết thúc này.

277
00:18:18,416 --> 00:18:24,680
Và các hoạt động GET này có thể được thực hiện bởi tất cả người dùng.

278
00:18:24,680 --> 00:18:27,805
Vì vậy, người dùng có thể truy xuất thông tin.

279
00:18:27,805 --> 00:18:31,605
Và chúng tôi sẽ cấp quyền truy cập một cách rõ ràng cho điều này.

280
00:18:31,605 --> 00:18:35,804
Vì vậy, có nghĩa là các thao tác GET được cho phép trên nút điểm cuối REST API.

281
00:18:35,804 --> 00:18:37,610
Đầu tiên, chúng tôi đóng tất cả mọi thứ,

282
00:18:37,610 --> 00:18:40,880
sau đó chúng tôi chỉ mở các hoạt động GET cho người dùng.

283
00:18:40,880 --> 00:18:46,175
Bây giờ, cuối cùng, họ sẽ đi đến từng mô hình,

284
00:18:46,175 --> 00:18:49,490
và sau đó đóng cửa và cho phép các hoạt động nhất định chỉ

285
00:18:49,490 --> 00:18:53,068
được thực hiện bởi một số loại người dùng nhất định.

286
00:18:53,068 --> 00:18:54,625
Vì vậy, để làm điều đó,

287
00:18:54,625 --> 00:19:00,511
ACL tiếp theo mà chúng tôi sẽ thiết lập là cho một mô hình cụ thể.

288
00:19:00,511 --> 00:19:03,197
Vì vậy, chúng tôi sẽ thiết lập cái này cho các món ăn.

289
00:19:03,197 --> 00:19:06,445
Và chúng ta sẽ nói, Một phương pháp duy nhất.

290
00:19:06,445 --> 00:19:08,685
Và sau đó tên phương pháp là, tạo ra.

291
00:19:08,685 --> 00:19:13,320
Vì vậy, có nghĩa là tạo ra những điều này sẽ chỉ được cho phép bởi.

292
00:19:13,320 --> 00:19:15,850
Vì vậy, một lần nữa, khi nó nói chọn vai trò,

293
00:19:15,850 --> 00:19:18,260
sau đó cho vai trò, chúng ta sẽ nói, khác.

294
00:19:18,260 --> 00:19:20,530
Và sau đó tên vai trò sẽ là quản trị viên.

295
00:19:20,530 --> 00:19:24,663
Vì vậy, những gì chúng tôi đang làm bằng thao tác này là,

296
00:19:24,663 --> 00:19:32,755
chúng tôi đang nói rằng chỉ có một người quản trị mới có thể tạo ra các món ăn mới hoặc cập nhật các món ăn hiện có.

297
00:19:32,755 --> 00:19:38,535
Vì vậy, đây là một chút gần, các hoạt động còn lại.

298
00:19:38,535 --> 00:19:45,669
Vì vậy, chúng ta hãy làm điều tương tự cho các nhà lãnh đạo.

299
00:19:45,669 --> 00:19:48,880
Và Một phương pháp duy nhất và sau đó,

300
00:19:48,880 --> 00:19:53,821
tạo ra và chúng tôi sẽ nói,

301
00:19:53,821 --> 00:19:58,320
chỉ có quản trị viên có thể làm điều này.

302
00:19:58,320 --> 00:20:04,330
Và sau đó cuối cùng, cũng cho chương trình khuyến mãi.

303
00:20:04,330 --> 00:20:05,919
Đối với các chương trình khuyến mãi.

304
00:20:05,919 --> 00:20:10,210
Phương pháp duy nhất, phương pháp tạo sẽ

305
00:20:10,210 --> 00:20:15,415
chỉ được phép bởi người dùng có vai trò được chỉ định là người quản trị.

306
00:20:15,415 --> 00:20:20,340
Chúng ta sẽ thấy cách chúng ta sẽ tạo người dùng với một vai trò cụ thể trong bước tiếp theo.

307
00:20:20,340 --> 00:20:22,398
Cấp quyền truy cập một cách rõ ràng.

308
00:20:22,398 --> 00:20:26,995
Bây giờ chú ý rằng tôi đã không đóng cửa khách hàng để tạo ra các hoạt động.

309
00:20:26,995 --> 00:20:28,305
Nếu tôi đóng cửa khách hàng,

310
00:20:28,305 --> 00:20:31,383
không ai sẽ có thể đăng ký vào hệ thống.

311
00:20:31,383 --> 00:20:33,220
Vì vậy, đó là lý do tại sao tôi sẽ để nó mở ra.

312
00:20:33,220 --> 00:20:37,170
Bởi vì, khách hàng sẽ có thể đăng ký vào hệ thống.

313
00:20:37,170 --> 00:20:41,364
Vì vậy, bạn có thể đăng ký tài khoản mới trên hệ thống.

314
00:20:41,364 --> 00:20:42,420
Tài khoản người dùng trên hệ thống.

315
00:20:42,420 --> 00:20:45,585
Vì vậy, điều đó sẽ được mở cho mọi người để làm.

316
00:20:45,585 --> 00:20:50,800
Vì vậy, để cho phép điều đó cho các khách hàng, chúng tôi sẽ nói, khách hàng,

317
00:20:50,800 --> 00:20:59,880
Một phương pháp duy nhất, tạo ra tất cả người dùng.

318
00:20:59,880 --> 00:21:03,450
Vì vậy, khách hàng có thể được tạo bởi tất cả người dùng vì điều đó sẽ

319
00:21:03,450 --> 00:21:07,125
cho phép mọi người đăng nhập vào tài khoản của họ.

320
00:21:07,125 --> 00:21:11,820
Cuối cùng, chúng ta sẽ thấy làm thế nào chúng ta có thể cấu hình máy chủ của chúng tôi để khởi động

321
00:21:11,820 --> 00:21:17,590
với một người dùng quản trị duy nhất được cấu hình tự động vào máy chủ Loopback của chúng tôi.

322
00:21:17,590 --> 00:21:19,300
Vì vậy, để làm điều đó,

323
00:21:19,300 --> 00:21:20,820
trong máy chủ Loopback của chúng tôi,

324
00:21:20,820 --> 00:21:25,015
trong thư mục máy chủ chúng tôi có thư mục con khởi động này ở đây.

325
00:21:25,015 --> 00:21:28,380
Bất kể mã mà chúng tôi đặt trong thư mục con khởi động,

326
00:21:28,380 --> 00:21:33,385
sẽ được thực hiện khi khởi động máy chủ LoopBack của chúng tôi.

327
00:21:33,385 --> 00:21:37,253
Vì vậy, ở đây, bạn sẽ thấy rằng chúng tôi đã có authentication.js này,

328
00:21:37,253 --> 00:21:38,490
mà đã được thiết lập,

329
00:21:38,490 --> 00:21:42,255
một Loopback mà sẽ thiết lập xác thực người dùng cho chúng tôi.

330
00:21:42,255 --> 00:21:44,790
Và sau đó chúng tôi có root.js mà sẽ thiết lập

331
00:21:44,790 --> 00:21:49,650
một số thông tin bổ sung cho máy chủ RAM Loopback của chúng tôi.

332
00:21:49,650 --> 00:21:52,920
Và chúng ta có thể thêm vào các tệp bổ sung ở đây.

333
00:21:52,920 --> 00:21:55,696
Vì vậy, tôi sẽ đi vào đó vào thư mục khởi động,

334
00:21:55,696 --> 00:22:01,111
và sau đó thêm vào tập tin này được gọi là, script.js.

335
00:22:01,111 --> 00:22:03,259
Và trong script.js này,

336
00:22:03,259 --> 00:22:07,610
tôi sẽ thiết lập mã để tạo ra một người dùng quản trị theo mặc định.

337
00:22:07,610 --> 00:22:08,785
Vì vậy, trong script.js,

338
00:22:08,785 --> 00:22:12,335
sẽ không có gì ngoài một mô-đun NPM dựa trên tập tin, vì vậy,

339
00:22:12,335 --> 00:22:13,995
chúng tôi sẽ bắt đầu bằng cách nói,

340
00:22:13,995 --> 00:22:21,050
module.exports = function (ứng dụng).

341
00:22:21,050 --> 00:22:23,355
Các ứng dụng là ứng dụng Loopback,

342
00:22:23,355 --> 00:22:28,185
mà sẽ được cung cấp như một tham số cho chức năng này cho chúng tôi.

343
00:22:28,185 --> 00:22:32,072
Và như vậy, chúng ta có thể sử dụng nó trong mã của chúng tôi ở đây.

344
00:22:32,072 --> 00:22:39,585
Vì vậy, ở đây, trước tiên chúng tôi sẽ thiết lập một người dùng quản trị.

345
00:22:39,585 --> 00:22:41,003
Vì vậy, để làm điều đó, chúng ta sẽ nói,

346
00:22:41,003 --> 00:22:51,840
var khách hàng = app.models.customer.

347
00:22:51,840 --> 00:22:56,580
Vì vậy, điều này cho phép chúng ta truy cập vào mô hình khách hàng.

348
00:22:56,580 --> 00:23:03,321
Sau đó, chúng tôi sẽ nói, khách hàng.Findone.

349
00:23:03,321 --> 00:23:08,820
Vì vậy, trước tiên chúng ta sẽ kiểm tra xem liệu một người dùng có tên người

350
00:23:08,820 --> 00:23:16,920
dùng là quản trị viên đã được cấu hình trong hệ thống hay không.

351
00:23:16,920 --> 00:23:20,585
Nếu không, sau đó tôi sẽ tạo một người dùng quản trị.

352
00:23:20,585 --> 00:23:30,230
Và điều này cung cấp cho tôi một chức năng gọi lại với hai tham số, err và người dùng.

353
00:23:30,230 --> 00:23:34,470
Và bên trong này- Vì vậy, trước tiên chúng tôi sẽ cố gắng để

354
00:23:34,470 --> 00:23:39,195
xem nếu một người dùng với quản trị viên tên của họ đã tồn tại.

355
00:23:39,195 --> 00:23:40,800
Nếu người dùng không tồn tại,

356
00:23:40,800 --> 00:23:42,453
thì chúng ta sẽ tạo người dùng.

357
00:23:42,453 --> 00:23:43,800
Vì vậy, để tạo người dùng,

358
00:23:43,800 --> 00:23:49,326
chúng tôi sẽ nói ở đây, nếu không phải là người dùng.

359
00:23:49,326 --> 00:23:55,830
Vì vậy, nếu người dùng không phải là null hoặc nếu người dùng nói null,

360
00:23:55,830 --> 00:24:02,305
thì điều đó có nghĩa là không có người dùng quản trị vì vậy tôi cần phải tạo một người dùng quản trị ở đây.

361
00:24:02,305 --> 00:24:09,330
Vì vậy, trong trường hợp này, chúng ta sẽ nói, customer.create.

362
00:24:09,330 --> 00:24:19,835
Và tạo này sẽ có một mảng các đối tượng nếu bạn muốn.

363
00:24:19,835 --> 00:24:30,235
Và mảng đối tượng này sẽ cho phép chúng tôi xác định tài khoản người dùng mà chúng tôi muốn tạo.

364
00:24:30,235 --> 00:24:33,575
Vì vậy, tài khoản người dùng đầu tiên mà tôi muốn tạo hoặc

365
00:24:33,575 --> 00:24:38,678
tài khoản người dùng duy nhất mà tôi muốn tạo là 'Quản trị viên'.

366
00:24:38,678 --> 00:24:41,845
Vì vậy, đây sẽ là quản trị viên mặc định cho

367
00:24:41,845 --> 00:24:47,447
máy chủ loopback của tôi và sau đó tôi có thể cấu hình email.

368
00:24:47,447 --> 00:24:56,850
Vì vậy, nhớ lại rằng mô hình người dùng hỗ trợ các thuộc tính này,

369
00:24:56,850 --> 00:25:02,380
confusion.net và sau đó mật khẩu

370
00:25:02,380 --> 00:25:07,253
tôi sẽ cấu hình như mật khẩu.

371
00:25:07,253 --> 00:25:09,790
Bạn cũng có thể cung cấp cùng với điều này,

372
00:25:09,790 --> 00:25:11,560
tên và họ,

373
00:25:11,560 --> 00:25:14,345
nếu bạn muốn, cho người dùng quản trị.

374
00:25:14,345 --> 00:25:16,975
Nhưng tôi sẽ để nó như vậy,

375
00:25:16,975 --> 00:25:20,640
như trống rỗng bởi vì những người không cần thiết cho người dùng quản trị.

376
00:25:20,640 --> 00:25:22,270
Vì vậy, tôi sẽ để nó ở đó.

377
00:25:22,270 --> 00:25:28,765
Vì vậy, lệnh này sẽ kết thúc tạo ra một khách hàng mới với tên 'Admin'.

378
00:25:28,765 --> 00:25:34,480
Vì vậy, nếu người dùng này hoặc tên “Admin” không tồn tại,

379
00:25:34,480 --> 00:25:36,194
sau đó chúng tôi sẽ tạo ra một.

380
00:25:36,194 --> 00:25:43,800
Và sau đó ở đây chúng ta có chức năng gọi lại.

381
00:25:45,150 --> 00:25:54,240
Vì vậy, sai người sử dụng.

382
00:25:54,240 --> 00:25:57,965
Bây giờ tôi sẽ nói,

383
00:25:57,965 --> 00:26:06,850
nếu sai lầm, chúng ta không biết nó đang cố gắng làm gì để chúng ta chỉ đơn giản là ném sai lầm.

384
00:26:06,850 --> 00:26:12,210
Nhưng thông thường chúng ta sẽ không mong đợi điều này xảy ra.

385
00:26:12,210 --> 00:26:17,650
Vì vậy, bây giờ, làm thế nào để bạn chỉ định người dùng này là một người dùng quản trị?

386
00:26:17,650 --> 00:26:19,290
Vì vậy, ngay bây giờ khi tôi đăng ký ở đây,

387
00:26:19,290 --> 00:26:21,305
tôi chỉ đăng ký một người dùng bình thường ở đây,

388
00:26:21,305 --> 00:26:24,270
nhưng chúng tôi muốn cung cấp một vai trò đặc biệt cho người dùng này.

389
00:26:24,270 --> 00:26:30,775
Vì vậy, đó là nơi loopback hỗ trợ một cách xác định vai trò cho người dùng.

390
00:26:30,775 --> 00:26:32,775
Vì vậy, để xác định một vai trò,

391
00:26:32,775 --> 00:26:39,609
chúng tôi sẽ var Role = App.models.Role.

392
00:26:39,609 --> 00:26:42,490
Vì vậy, điều này sẽ cho phép tôi tạo một vai trò,

393
00:26:42,490 --> 00:26:44,670
một người quản trị cuộc gọi vai trò mới ở đây.

394
00:26:44,670 --> 00:26:48,600
Vì vậy, chúng tôi có thể chỉ định máy bay khác nhau cho người dùng khác nhau nếu bạn muốn.

395
00:26:48,600 --> 00:26:50,365
Và để cùng với điều này,

396
00:26:50,365 --> 00:26:55,394
tôi cũng cần phải tạo một RoleMapapping ở đây.

397
00:26:55,394 --> 00:27:05,519
Vì vậy, chúng tôi sẽ nói, App.models.Rolemapping.

398
00:27:05,519 --> 00:27:12,045
Và nếu nó xảy ra như vậy mà cơ sở dữ liệu đã chứa

399
00:27:12,045 --> 00:27:18,821
bất kỳ RoleMapping đã tồn tại,

400
00:27:18,821 --> 00:27:25,290
sau đó tôi sẽ tiêu diệt tất cả những người khi tôi khởi động máy chủ của tôi.

401
00:27:25,290 --> 00:27:35,650
Và sau đó cho phép tôi cố gắng tìm

402
00:27:36,120 --> 00:27:40,550
để xem nếu một vai trò với

403
00:27:40,550 --> 00:27:46,130
quản trị viên tên đó đã

404
00:27:46,130 --> 00:27:53,180
tồn tại trong hệ thống.

405
00:27:53,180 --> 00:27:54,885
Được rồi.

406
00:27:54,885 --> 00:27:56,420
Và trong điều này mất,

407
00:27:56,420 --> 00:27:57,560
như bạn mong đợi,

408
00:27:57,560 --> 00:28:06,795
một chức năng gọi lại và bên trong đây chúng ta sẽ nói, role.Findone.

409
00:28:06,795 --> 00:28:10,530
Vì vậy, nếu một vai trò có tên quản trị viên đã tồn tại,

410
00:28:10,530 --> 00:28:11,927
sau đó tôi không cần phải tạo một vai trò.

411
00:28:11,927 --> 00:28:18,710
Nếu không, nếu điều đó không tồn tại,

412
00:28:18,710 --> 00:28:20,427
thì tôi cần phải tạo ra vai trò.

413
00:28:20,427 --> 00:28:29,540
Vì vậy, chúng tôi sẽ nói, role.Create.

414
00:28:29,540 --> 00:28:34,950
Vì vậy, chúng tôi sẽ tạo vai trò quản trị tại đây.

415
00:28:34,950 --> 00:28:45,230
Và sau đó điều này đưa chúng ta đến các tham số err,

416
00:28:45,230 --> 00:28:52,523
vai trò ở đây, trong chức năng gọi lại.

417
00:28:52,523 --> 00:28:56,215
Bây giờ một lần nữa, ở đây để xử lý lỗi,

418
00:28:56,215 --> 00:29:03,749
chúng tôi sẽ chỉ sao chép này 'nếu lỗi' và sau đó dán nó ở đó.

419
00:29:03,749 --> 00:29:06,685
Tương tự như vậy ở đây cũng, nếu lỗi xảy ra,

420
00:29:06,685 --> 00:29:09,415
sau đó tôi cần phải xử lý điều đó.

421
00:29:09,415 --> 00:29:12,820
Vì vậy, 'nếu lỗi' sau đó 'ném lỗi'.

422
00:29:12,820 --> 00:29:21,787
Nếu không, chúng tôi đã tạo ra vai trò.

423
00:29:21,787 --> 00:29:28,625
Vì vậy, bây giờ tôi cần phải ánh xạ vai trò này cho người dùng cụ thể này mà tôi vừa tạo ra.

424
00:29:28,625 --> 00:29:31,658
Người dùng này mà tôi vừa tạo ra ở đây.

425
00:29:31,658 --> 00:29:36,660
Người dùng này. Tôi muốn cung cấp cho người dùng này vai trò của quản trị viên.

426
00:29:36,660 --> 00:29:39,140
Vì vậy, kể từ khi tôi đã tạo ra vai trò này bởi quản trị viên tên,

427
00:29:39,140 --> 00:29:47,167
vì vậy chúng tôi sẽ nói, role.principals.create.

428
00:29:47,167 --> 00:29:56,954
Vì vậy, đây là cách bạn tạo một ánh xạ giữa vai trò và một người dùng cụ thể ở đây.

429
00:29:56,954 --> 00:29:59,370
Vì vậy, chúng tôi sẽ nói, role.principals.create.

430
00:29:59,370 --> 00:30:01,735
Vì vậy, đây là cú pháp ở đó.

431
00:30:01,735 --> 00:30:17,320
Chúng tôi sẽ nói, PrincipalType: Rolemapping.User

432
00:30:17,320 --> 00:30:25,330
ở đây và bạn sẽ có

433
00:30:25,330 --> 00:30:32,385
một id chính ở đây mà là người sử dụng.

434
00:30:32,385 --> 00:30:36,320
Bây giờ người dùng này đề cập đến những gì?

435
00:30:36,320 --> 00:30:40,418
Người dùng này đề cập đến điều này vừa đi vào.

436
00:30:40,418 --> 00:30:43,520
Vì vậy, khi chúng tôi tạo ra người dùng này,

437
00:30:43,520 --> 00:30:49,335
sau đó khách hàng phải tạo ra một sự trở lại thành công cho chúng tôi ở đây.

438
00:30:49,335 --> 00:30:51,905
Vì vậy, đó là những gì tôi sẽ sử dụng ở đây.

439
00:30:51,905 --> 00:30:53,240
Chúng tôi sẽ nói, người dùng [0].

440
00:30:53,240 --> 00:30:58,430
Vì vậy, đây sẽ là một mảng người dùng đã được tạo ra và chỉ chứa một trong số họ.

441
00:30:58,430 --> 00:31:01,748
Vì vậy, đó là lý do tại sao tôi đang nói người dùng [0].

442
00:31:01,748 --> 00:31:08,037
Và sau đó chúng tôi sẽ gán ID của người dùng đó ở đây.

443
00:31:08,037 --> 00:31:14,215
Vì vậy, đây là cách chúng tôi sẽ tạo một RoleMapping giữa vai trò mà chúng tôi vừa tạo,

444
00:31:14,215 --> 00:31:20,639
vai trò này, và sau đó ánh xạ nó với khách hàng mà chúng tôi vừa tạo ra.

445
00:31:20,639 --> 00:31:29,315
Bây giờ điều này cũng đưa chúng ta đến các tham số, hàm callback.

446
00:31:29,315 --> 00:31:33,735
Và trong chức năng gọi lại này, chúng tôi sẽ chỉ đơn giản là nói,

447
00:31:33,735 --> 00:31:35,950
nếu (err) ném (err).

448
00:31:35,950 --> 00:31:41,825
Nếu không, chúng tôi không thực sự quan tâm đến việc biết những gì khác đã xảy ra ở đó.

449
00:31:41,825 --> 00:31:44,055
Đó là nó. Vì vậy, đây là cách.

450
00:31:44,055 --> 00:31:46,870
Vì vậy, nếu vai trò có tên quản trị viên không tồn tại,

451
00:31:46,870 --> 00:31:48,819
chúng tôi sẽ tạo vai trò đó.

452
00:31:48,819 --> 00:31:53,785
Nếu không- Vì vậy, đây là

453
00:31:53,785 --> 00:32:01,170
phần 'khác' nơi tôi vẫn sẽ cần phải làm ánh xạ này.

454
00:32:01,170 --> 00:32:08,140
Vì vậy, để tôi sao chép mã đó và sau đó tôi sẽ làm chính xác điều đó ở đây.

455
00:32:08,140 --> 00:32:15,834
Vì vậy, role.principals.create và sau đó ánh xạ này cho người dùng ở đó.

456
00:32:15,834 --> 00:32:17,980
Vì vậy, nếu vai trò quản trị đã tồn tại,

457
00:32:17,980 --> 00:32:20,730
thì tất cả những gì họ cần làm là thực hiện ánh xạ.

458
00:32:20,730 --> 00:32:28,420
Vì vậy, điều này sẽ được lưu trữ trong mô hình RoleMapping trong cơ sở dữ liệu của chúng tôi. Đó là nó.

459
00:32:28,420 --> 00:32:34,520
Vì vậy, đoạn mã này mà chúng tôi đưa vào tập tin script.js trước tiên sẽ cố gắng

460
00:32:34,520 --> 00:32:41,765
tìm xem một người dùng quản trị tồn tại và người dùng đó được xác định bởi người quản trị tên.

461
00:32:41,765 --> 00:32:50,210
Nếu không, thì người dùng sẽ được tạo ra và sau đó cũng sẽ tạo vai trò cho người dùng.

462
00:32:50,210 --> 00:32:52,065
Chúng tôi sẽ tạo một vai trò có tên là quản trị viên.

463
00:32:52,065 --> 00:32:53,865
Nếu vai trò đó tồn tại,

464
00:32:53,865 --> 00:32:54,950
thì chúng ta sẽ sử dụng nó.

465
00:32:54,950 --> 00:32:56,705
Nếu không, chúng ta sẽ tạo ra vai trò.

466
00:32:56,705 --> 00:33:01,485
Và sau đó chúng tôi sẽ tạo ra ánh xạ này giữa vai trò và người dùng.

467
00:33:01,485 --> 00:33:03,940
Vì vậy, loopback cho phép chúng tôi làm RoleMapping.

468
00:33:03,940 --> 00:33:07,310
Vì vậy, nói rằng người dùng này không phải là vai trò này.

469
00:33:07,310 --> 00:33:10,395
Vì vậy, ánh xạ này được thực hiện bằng cách sử dụng câu lệnh này.

470
00:33:10,395 --> 00:33:14,010
Vì vậy, điều đó hoàn thành việc thiết lập các máy chủ của chúng tôi.

471
00:33:14,010 --> 00:33:18,305
Vì vậy, một người dùng quản trị sẽ được tạo ra và người dùng quản trị đó sẽ

472
00:33:18,305 --> 00:33:24,155
tự động nhận được vai trò của người quản trị như được cấu hình ở đây.

473
00:33:24,155 --> 00:33:27,675
Đó là nó. Hãy lưu các thay đổi vào script.js.

474
00:33:27,675 --> 00:33:32,015
Và bây giờ các máy chủ loopback của chúng tôi phải sẵn sàng.

475
00:33:32,015 --> 00:33:38,840
Vì vậy, bây giờ chúng tôi sẽ đi và bắt đầu quay trở lại máy chủ của chúng tôi và sau đó kiểm tra những gì chúng tôi có thể làm với điều này.

476
00:33:38,840 --> 00:33:41,085
Đi đến các thiết bị đầu cuối,

477
00:33:41,085 --> 00:33:43,060
chúng ta hãy bắt đầu máy chủ loopback.

478
00:33:43,060 --> 00:33:49,428
Vì vậy, chúng tôi sẽ nói, npm bắt đầu và sau đó máy chủ của chúng tôi nên được lên và chạy.

479
00:33:49,428 --> 00:33:53,220
Hãy đi đến Explorer và sau đó duyệt thông tin ở đó.

480
00:33:53,220 --> 00:33:55,890
Và máy chủ loopback này sẽ tự động

481
00:33:55,890 --> 00:33:59,535
kết nối với MongoDP của tôi bởi vì tôi đã thiết lập kết nối.

482
00:33:59,535 --> 00:34:03,415
Đi đến trình duyệt của tôi,

483
00:34:03,415 --> 00:34:05,610
hãy để tôi tải lại.

484
00:34:05,610 --> 00:34:07,879
Và khi tôi tải lại,

485
00:34:07,879 --> 00:34:12,450
bây giờ bạn sẽ thấy rằng chúng tôi có một khách hàng mới đã được tạo ra ở đây.

486
00:34:12,450 --> 00:34:14,705
Người dùng đã tồn tại trước đó.

487
00:34:14,705 --> 00:34:17,840
Các món ăn, nhà lãnh đạo, và chương trình khuyến mãi đều có ở đó.

488
00:34:17,840 --> 00:34:20,325
Hãy thực hiện một get trên các món ăn.

489
00:34:20,325 --> 00:34:23,250
Bây giờ điều này được kết nối với miệng MongoDB, Mon

490
00:34:23,250 --> 00:34:26,845
goDB của tôi đã có một số món ăn trong đó.

491
00:34:26,845 --> 00:34:28,235
Nếu MongoDB của bạn trống rỗng,

492
00:34:28,235 --> 00:34:31,821
bạn có thể đăng một số món ăn bằng cách sử dụng bài đăng ở đây.

493
00:34:31,821 --> 00:34:33,995
Vì vậy, hãy thử nó ra.

494
00:34:33,995 --> 00:34:38,040
Khi tôi làm một hoạt động get trên các món ăn gạch chéo,

495
00:34:38,040 --> 00:34:42,945
bạn sẽ thấy rằng trong cơ thể phản ứng-

496
00:34:42,945 --> 00:34:48,090
Tất cả các món ăn tồn tại trong cơ sở dữ liệu của tôi đã được lấy tất cả.

497
00:34:48,090 --> 00:34:52,995
Tương tự như vậy, tôi có thể làm một GET trên

498
00:34:52,995 --> 00:35:01,900
chương trình khuyến mãi và tôi sẽ thấy chương trình khuyến mãi đã tồn tại trong cơ sở dữ liệu của tôi ở đó.

499
00:35:01,900 --> 00:35:04,845
Vì vậy, bạn có thể thấy rằng chương trình khuyến mãi đã tồn tại ở đó.

500
00:35:04,845 --> 00:35:09,978
Vì vậy, điều đó cho chúng ta thấy làm thế nào chúng ta có thể lấy thông tin.

501
00:35:09,978 --> 00:35:12,485
Bây giờ, chúng ta hãy thử đăng một món ăn mới.

502
00:35:12,485 --> 00:35:14,185
Vì vậy, để đăng một món ăn mới,

503
00:35:14,185 --> 00:35:16,675
chúng tôi đi đến POST ở đây.

504
00:35:16,675 --> 00:35:18,715
Để tôi sao chép cái này.

505
00:35:18,715 --> 00:35:20,035
Rõ ràng, tại thời điểm này,

506
00:35:20,035 --> 00:35:22,080
bởi vì vì tôi không phải là một đăng nhập,

507
00:35:22,080 --> 00:35:26,180
tôi sẽ không được phép đăng các món ăn như vậy,

508
00:35:26,180 --> 00:35:31,615
nhưng tôi sẽ chứng minh rằng bạn chỉ cần sao chép và dán thông tin này ở đây,

509
00:35:31,615 --> 00:35:34,120
và chúng tôi sẽ cố gắng gửi món ăn đó,

510
00:35:34,120 --> 00:35:36,010
và sau đó khi tôi cố gắng đăng các món ăn,

511
00:35:36,010 --> 00:35:40,660
máy chủ của tôi ngay lập tức trả lời với lỗi này nói, AUTHIZATIZATION_REQUY.

512
00:35:40,660 --> 00:35:42,790
Bạn không được phép thực hiện thao tác này.

513
00:35:42,790 --> 00:35:46,146
Vì vậy, đó là lý do tại sao bạn không được phép thực hiện thao tác này.

514
00:35:46,146 --> 00:35:48,505
Bây giờ, làm thế nào để bạn ủy quyền cho mình?

515
00:35:48,505 --> 00:35:50,315
Vì vậy, để ủy quyền cho mình,

516
00:35:50,315 --> 00:35:58,450
bây giờ nhớ lại rằng chúng tôi đã tạo một người dùng với quản trị viên tên

517
00:35:58,450 --> 00:36:05,240
và người dùng quản trị này đã tồn tại như một khách hàng ở đây.

518
00:36:05,240 --> 00:36:11,495
Vì vậy, đi vào điểm cuối REST API của khách hàng,

519
00:36:11,495 --> 00:36:12,835
nếu bạn cuộn xuống,

520
00:36:12,835 --> 00:36:16,925
xuống dưới đây, bạn sẽ thấy đăng nhập của khách hàng này.

521
00:36:16,925 --> 00:36:20,220
Vì vậy, khi bạn thực hiện một bài đăng trên đăng nhập của khách hàng.

522
00:36:20,220 --> 00:36:22,430
Vì vậy, để đăng nhập của khách hàng,

523
00:36:22,430 --> 00:36:26,273
bạn di chuyển lên đây và sau đó ở đây nó yêu cầu các thông tin đăng nhập.

524
00:36:26,273 --> 00:36:27,540
Vì vậy, trong thông tin đăng nhập,

525
00:36:27,540 --> 00:36:35,190
chúng tôi có thể nhập tên người dùng trong dấu ngoặc kép, và chúng tôi sẽ nói,

526
00:36:35,190 --> 00:36:40,570
Quản trị viên, và sau đó mật khẩu,

527
00:36:40,570 --> 00:36:48,665
chúng tôi sẽ nói, mật khẩu, và sau đó chúng tôi sẽ đăng bài này.

528
00:36:48,665 --> 00:36:50,450
Và sau đó khi bạn đăng nó,

529
00:36:50,450 --> 00:36:54,365
bạn sẽ nhận thấy rằng trong bài trả lời,

530
00:36:54,365 --> 00:36:57,764
LoopBack sẽ gửi lại cho tôi thông tin này.

531
00:36:57,764 --> 00:36:59,660
Bây giờ, trong thông tin

532
00:36:59,660 --> 00:37:06,725
này, id đặc biệt này mà nó gửi trở lại là AccessToken cho máy chủ LoopBack của tôi.

533
00:37:06,725 --> 00:37:09,835
Vì vậy, Tôi chỉ có thể sao chép AccessToken này ở đây,

534
00:37:09,835 --> 00:37:13,575
và sau đó ngay ở trên cùng ở đây,

535
00:37:13,575 --> 00:37:17,735
bạn có thể thấy rằng đây là Token Không Set, đây.

536
00:37:17,735 --> 00:37:19,660
Nó nói rằng Token Không Set.

537
00:37:19,660 --> 00:37:22,415
Và ở đây bạn có thể gõ vào AccessToken này,

538
00:37:22,415 --> 00:37:24,605
và sau đó nói, Set Access Token.

539
00:37:24,605 --> 00:37:27,245
Và sau đó AccessToken của bạn sẽ được thiết lập,

540
00:37:27,245 --> 00:37:33,525
và sau đó tất cả các hoạt động tiếp theo mà bạn thực hiện sẽ tự động mang

541
00:37:33,525 --> 00:37:39,750
AccessToken này trong tiêu đề của thông điệp yêu cầu của tôi.

542
00:37:39,750 --> 00:37:45,350
Vì vậy, theo cách đó, bây giờ quản trị viên của tôi sẽ được phép làm bài viết của các mục ở đó.

543
00:37:45,350 --> 00:37:47,480
Vì vậy, bây giờ tôi đã đăng nhập với tư cách là một quản trị viên,

544
00:37:47,480 --> 00:37:49,135
hãy để tôi đi đến chương trình khuyến mãi,

545
00:37:49,135 --> 00:37:51,171
và sau đó tôi sẽ đăng một chương trình khuyến mãi ở đó,

546
00:37:51,171 --> 00:37:57,098
và cho bạn thấy rằng tôi thực sự có thể đăng chương trình khuyến mãi.

547
00:37:57,098 --> 00:38:00,885
Vì vậy, chúng ta hãy đi đến một bài đăng,

548
00:38:00,885 --> 00:38:07,250
và sau đó chúng tôi sẽ chỉ sao chép này, và sau đó trong dữ liệu,

549
00:38:07,250 --> 00:38:13,855
và sau đó cho tên chúng tôi sẽ nói, Test khuyến mãi,

550
00:38:13,855 --> 00:38:24,500
và hình ảnh chúng tôi sẽ chỉ để nó như vậy, mô tả, Test Mô tả.

551
00:38:30,990 --> 00:38:34,665
Và tôi có thể đăng nó trong đó,

552
00:38:34,665 --> 00:38:38,180
và bạn sẽ thấy

553
00:38:41,740 --> 00:38:48,265
rằng tôi không nên bao gồm id này trong đây bởi vì tôi đã

554
00:38:48,265 --> 00:38:53,710
để LoopBack tự động gán id cho nó.

555
00:38:53,710 --> 00:38:58,325
Hãy để tôi đăng bài này và sau đó bạn sẽ thấy rằng trong cơ thể phản ứng,

556
00:38:58,325 --> 00:39:01,293
khuyến mãi thử nghiệm đã được đăng ở đây.

557
00:39:01,293 --> 00:39:04,615
Và tôi chỉ nhận thấy rằng tôi chưa bao gồm

558
00:39:04,615 --> 00:39:11,130
lá cờ nổi bật cho chương trình khuyến mãi của tôi và các nhà lãnh đạo của tôi.

559
00:39:11,130 --> 00:39:16,180
Vì vậy, tôi sẽ đi vào và bao gồm cờ nổi bật như

560
00:39:16,180 --> 00:39:21,930
một trong những phần của chương trình khuyến mãi của tôi ở đó.

561
00:39:21,930 --> 00:39:26,845
Vì vậy, bây giờ khi tôi làm một GET cho các chương trình khuyến mãi,

562
00:39:26,845 --> 00:39:29,875
bạn sẽ thấy rằng trong tin nhắn trả lời,

563
00:39:29,875 --> 00:39:34,795
bạn sẽ thấy chương trình khuyến mãi cũ đã có trong cơ sở dữ liệu của tôi

564
00:39:34,795 --> 00:39:40,395
và sau đó chương trình khuyến mãi mới mà tôi vừa đăng lên cơ sở dữ liệu của tôi đã được bao gồm trong đây.

565
00:39:40,395 --> 00:39:44,395
Vì vậy, tôi chỉ nhận thấy rằng tôi cần phải thiết lập cờ nổi bật,

566
00:39:44,395 --> 00:39:46,695
tôi sẽ chỉ cho bạn làm thế nào để làm điều đó trong một.

567
00:39:46,695 --> 00:39:54,100
Vì vậy, loại chứng minh cho bạn làm thế nào bạn có thể đăng nhập và khám phá máy chủ LoopBack của bạn.

568
00:39:54,100 --> 00:39:55,420
Hãy để tôi phá hủy mã thông báo này,

569
00:39:55,420 --> 00:39:58,010
vì vậy chúng tôi sẽ chỉ cần loại bỏ mã thông báo,

570
00:39:58,010 --> 00:39:59,555
và sau đó nhấp vào

571
00:39:59,555 --> 00:40:02,440
đó để về cơ bản sẽ gửi mã thông báo truy cập đến một

572
00:40:02,440 --> 00:40:05,560
chuỗi rỗng và do đó mã thông báo của tôi sẽ không còn xử lý,

573
00:40:05,560 --> 00:40:07,880
vì vậy bây giờ người dùng của tôi không còn đăng nhập nữa.

574
00:40:07,880 --> 00:40:11,148
Hãy để tôi tạo ra một khách hàng mới.

575
00:40:11,148 --> 00:40:16,290
Vì vậy, để tạo ra một khách hàng mới, tôi sẽ nói, POST khách hàng.

576
00:40:16,290 --> 00:40:20,780
Và sau đó tôi sẽ sao chép cái này từ đây.

577
00:40:20,780 --> 00:40:24,175
Tôi sẽ tạo cho mình một tài khoản mới ở đây.

578
00:40:24,175 --> 00:40:26,160
Và vì vậy, ở đây,

579
00:40:26,160 --> 00:40:28,620
tôi sẽ loại bỏ các lĩnh vực,

580
00:40:28,620 --> 00:40:32,186
tôi không cần điều đó, tôi không cần id

581
00:40:32,186 --> 00:40:36,070
Vì vậy, cho tên đầu tiên

582
00:40:39,750 --> 00:40:46,610
và EmailVerified sẽ tự động được thiết lập bởi hệ thống.

583
00:40:46,610 --> 00:40:49,430
Vì vậy, hãy để tôi đăng nhập với tư cách là người dùng này.

584
00:40:49,430 --> 00:40:52,370
Vì vậy, tôi chỉ cần gửi tên của tôi, họ,

585
00:40:52,370 --> 00:40:54,440
và hình ảnh hiện tại,

586
00:40:54,440 --> 00:40:59,745
tôi sẽ chỉ cần thiết lập một chuỗi trống ở đó, tên người dùng và email.

587
00:40:59,745 --> 00:41:01,835
Và sau đó chúng tôi sẽ thử nó ra,

588
00:41:01,835 --> 00:41:05,060
và sau đó nó trở lại nói,

589
00:41:05,060 --> 00:41:08,820
Chi tiết: 'mật khẩu' không thể trống.

590
00:41:08,820 --> 00:41:11,285
Vì vậy, bạn sẽ nhận thấy rằng trong đây,

591
00:41:11,285 --> 00:41:16,900
tôi cũng nên bao gồm cùng với tên người dùng,

592
00:41:17,040 --> 00:41:27,834
mật khẩu và sau đó, chúng ta hãy đăng bài này.

593
00:41:27,834 --> 00:41:30,890
Vì vậy, khi bạn đăng nó, nó trở lại với

594
00:41:30,890 --> 00:41:35,535
Response Body nói rằng bạn bây giờ là một phần của hệ thống.

595
00:41:35,535 --> 00:41:37,160
Vì vậy, tên của

596
00:41:37,160 --> 00:41:40,280
bạn, họ của bạn, và tên người dùng của bạn, ID email của bạn

597
00:41:40,280 --> 00:41:45,706
và id mà LoopBack gán cho bạn sẽ được gửi lại cho bạn.

598
00:41:45,706 --> 00:41:52,777
Vì vậy, đây là không có gì ngoài id MongoDB như bạn có thể thấy ở đây.

599
00:41:52,777 --> 00:41:56,150
Vì vậy, bây giờ tôi đã đăng ký như một khách hàng,

600
00:41:56,150 --> 00:41:58,425
tôi sẽ có thể đăng nhập như là khách hàng,

601
00:41:58,425 --> 00:42:01,775
để tôi sẽ đi đến đăng nhập POST ở đây,

602
00:42:01,775 --> 00:42:04,250
và sau đó ở đây thay vì quản trị viên,

603
00:42:04,250 --> 00:42:11,710
tôi sẽ đăng nhập như là người dùng mới mà tôi đã đăng nhập.

604
00:42:11,710 --> 00:42:14,130
Vì vậy, sau đó tôi bấm vào để thử nó ra,

605
00:42:14,130 --> 00:42:17,405
bạn sẽ thấy rằng nó trở lại với id,

606
00:42:17,405 --> 00:42:22,910
vì vậy nó cung cấp cho tôi mã thông báo cho người dùng quản trị này ở đây.

607
00:42:22,910 --> 00:42:30,080
Vì vậy, với điều này chúng tôi đã hoàn thành kiểm tra máy chủ LoopBack mà chúng tôi vừa tạo ra.

608
00:42:30,080 --> 00:42:31,340
Và như tôi vừa đề cập,

609
00:42:31,340 --> 00:42:36,935
tôi nhận thấy rằng các chương trình khuyến mãi và các nhà lãnh đạo không có cờ đặc trưng vì vậy,

610
00:42:36,935 --> 00:42:40,930
tôi sẽ đi vào mã.

611
00:42:40,930 --> 00:42:43,400
Vì vậy, giả sử bạn quên một cái gì

612
00:42:43,400 --> 00:42:47,305
đó như thế này, sau đó bạn chỉ có thể đi vào và chỉnh sửa mã Json nếu bạn muốn.

613
00:42:47,305 --> 00:42:50,540
Vì vậy, tôi sẽ đi vào mã của tôi,

614
00:42:50,540 --> 00:42:52,040
đi đến mã,

615
00:42:52,040 --> 00:42:56,635
tôi sẽ đầu tiên đi vào commons và sau đó tôi sẽ đi vào dishes.json.

616
00:42:56,635 --> 00:42:59,750
Và sau đó trong dishes.json,

617
00:42:59,750 --> 00:43:05,320
tôi thấy tài sản đặc trưng này ở đó.

618
00:43:05,320 --> 00:43:07,480
Tôi sẽ sao chép tài sản đặc trưng này,

619
00:43:07,480 --> 00:43:09,040
và sau đó tôi sẽ đi vào leaders.json,

620
00:43:09,040 --> 00:43:15,151
và sau đó tôi sẽ dán tài sản tính năng đó vào một leaders.json,

621
00:43:15,151 --> 00:43:17,750
và cũng với promotions.json.

622
00:43:17,750 --> 00:43:22,955
Tôi quên bao gồm điều này khi tôi tạo ra những mô hình đó.

623
00:43:22,955 --> 00:43:27,180
Tôi nên làm điều này khi tôi tạo ra mô hình chính nó,

624
00:43:27,180 --> 00:43:29,960
nếu bạn quên một cái gì đó như thế,

625
00:43:29,960 --> 00:43:33,370
thì đây là một cách khác để chỉnh sửa mô hình của bạn

626
00:43:33,370 --> 00:43:38,070
và sau đó đảm bảo rằng mô hình của bạn được thiết lập chính xác.

627
00:43:38,070 --> 00:43:40,130
Vậy, đúng vậy.

628
00:43:40,130 --> 00:43:48,575
Vì vậy, bây giờ chương trình khuyến mãi và các nhà lãnh đạo của tôi cũng sẽ có lá cờ đặc trưng được đặt trong đó.

629
00:43:48,575 --> 00:43:52,675
Với điều này, chúng tôi hoàn thành bài tập này.

630
00:43:52,675 --> 00:43:56,525
Trong bài tập này, chúng ta đã thấy làm thế nào chúng ta có thể thiết lập

631
00:43:56,525 --> 00:44:03,555
một mô hình mới bằng cách mở rộng một lớp mô hình cơ sở đã có trong LoopBack.

632
00:44:03,555 --> 00:44:07,250
Chúng tôi cũng đã thấy cách chúng tôi có thể thiết lập điều khiển truy cập bằng cách sử dụng

633
00:44:07,250 --> 00:44:11,540
danh sách điều khiển truy cập được hỗ trợ bởi LoopBack.

634
00:44:11,540 --> 00:44:13,970
Với điều này, chúng tôi hoàn thành bài tập này.

635
00:44:13,970 --> 00:44:16,835
Đây là thời điểm tốt để bạn có thể làm một get bao phủ với

636
00:44:16,835 --> 00:44:22,450
các nguồn dữ liệu tin nhắn LoopBack và kiểm soát truy cập.