Giáo viên đã có tài khoản FLYER đăng nhập Trogiang.ai bằng chính tài khoản đó và vào thẳng ứng dụng với đúng tên trong hồ sơ FLYER.
Chờ đặt khóa SESSION_SECRET trên hai WorkerPrompt. Ngày 03/11/2026, yêu cầu được đặt ra nguyên văn: "feature image đang bị bugs https://trogiang.ai", sau đó "Bổ sung button login ở landing page nhé https://trogiang.ai", "đồng bộ database với giaovien.phongthiao.com, nếu có account rồi thì chỉ login thôi" và "trogiang.ai sẽ dùng logo giống giaovien.phongthiao.com nhé".
Ai soạn. Tài liệu do trợ lý AI soạn từ phần việc đã bàn giao trên trogiang.ai, dùng làm cơ sở để đội sản phẩm thảo luận.
Nguồn: mã Worker ~/partner-web-trogiang-kit/demo-auth.ts; các tệp src/demo/engine.ts, src/components/Logo.tsx và public/home/index.html của ~/partner-web-trogiang; kiểm thử đơn vị 17 điểm cho mô-đun đăng nhập; ảnh chụp và kiểm tra trực tiếp trên trogiang.ai ngày 03/11/2026.
Giới hạn:
/api/demo-session trả mã 404 vì chưa có khóa SESSION_SECRET.Nút Đăng nhập nằm trên thanh điều hướng của trang giới thiệu trogiang.ai, giữa Vào ứng dụng và Dùng thử miễn phí. Trên điện thoại, thanh điều hướng chỉ giữ logo, Đăng nhập và Dùng thử. Nút dẫn tới trang đăng nhập sẵn có của ứng dụng (/vi/login); không thêm màn hình mới.
Máy tính: Môn học · Tính năng · Cách dùng · Dạng câu hỏi · Promax 2, rồi ba nút Vào ứng dụng · Đăng nhập · Dùng thử miễn phí. Nút Đăng nhập nền trắng, viền và chữ tím.
Điện thoại 390px: logo, Đăng nhập, Dùng thử.
Trang /vi/login khi giáo viên chưa đăng nhập: ô số điện thoại hoặc tên đăng nhập, ô mật khẩu, Ghi nhớ tài khoản, Quên mật khẩu, nút Đăng Nhập, nút Đăng Nhập Với Google và liên kết Đăng ký. Logo trên khung là logo mới.



new-icon.pngThanh bên của ứng dụng và trang giới thiệu dùng /static/images/new-icon.png, cùng tệp với giaovien.phongthiao.com; trang đăng nhập hiển thị cùng biểu tượng.
Trước khi sửa
Ảnh co theo chiều ngang nhưng giữ chiều cao 800px nên bị bóp méo.
Sau khi sửa
Ảnh giữ đúng tỉ lệ 16:10, chụp lại không còn lớp phủ.
03/11/2026: ba màn chụp từ trogiang.ai ở khổ 390 × 844: đầu trang giới thiệu, trang đăng nhập, phần ảnh tính năng.



Nút Đăng nhập luôn hiện trên thanh điều hướng dính ở đầu trang; ảnh tính năng co theo bề ngang màn hình và giữ đúng tỉ lệ.
Mục tiêu: giáo viên đã có tài khoản FLYER chỉ cần đăng nhập, không phải đăng ký lại; một số điện thoại không tạo được tài khoản thứ hai; Trogiang.ai không lưu mật khẩu; nhận diện thống nhất với giaovien.phongthiao.com; trang giới thiệu hiển thị đúng.
| Hạng mục | Thay đổi | Trạng thái 03/11/2026 |
|---|---|---|
| Nút Đăng nhập | Thêm vào thanh điều hướng của trang giới thiệu, hiện cả trên điện thoại | Đã lên |
| Đăng nhập bằng tài khoản FLYER | Worker kiểm mật khẩu với API production rồi giữ phiên riêng của Trogiang.ai | Đã triển khai, chưa kích hoạt |
| Logo | Dùng /static/images/new-icon.png như giaovien.phongthiao.com | Đã lên |
| Ảnh tính năng, số dạng | Sửa ảnh bị bóp méo, chụp lại ảnh không lớp phủ; cập nhật số dạng thành 115 | Đã lên |
| Nút trên trang giới thiệu | Đích | Hiện trên điện thoại |
|---|---|---|
| Vào ứng dụng | /api/demo-guest?next=/vi/explore | Không |
| Đăng nhập | /vi/login | Có |
| Dùng thử miễn phí | /api/demo-guest?next=/vi/onboarding?mock=new-teacher | Có, nhãn "Dùng thử" |
| Xem kho đề mẫu và các nút khác vào ứng dụng | Qua /api/demo-guest?next=… | Có |
/api/demo-guest xóa dấu "đã đăng xuất" rồi chuyển tới trang đích, nên người xem chọn nút trên trang giới thiệu luôn vào được ứng dụng. Đường này hoạt động cả khi chưa có khóa SESSION_SECRET.
Yêu cầu "đồng bộ database với giaovien.phongthiao.com" được làm rõ bằng cách đọc mã nguồn của bản giaovien trước khi viết mã.
| Câu hỏi | Kết quả |
|---|---|
| giaovien.phongthiao.com có cơ sở dữ liệu tài khoản riêng không? | Không. Đây là bản chạy dữ liệu mẫu; đăng nhập chỉ lưu trong trình duyệt. |
| Tài khoản giáo viên thật nằm ở đâu? | Trong cơ sở dữ liệu tài khoản FLYER, nơi tạo tài khoản từ admin.flyer.vn và teacher.flyer.us. Mã nguồn bản dùng thử đã ghi cơ sở dữ liệu dự kiến là tài khoản production của FLYER. |
| Bản dùng thử đã có chỗ nối chưa? | Có. src/demo/engine.ts đã gọi sẵn các đường /api/demo-* cho đăng nhập, đăng ký, đăng xuất và kiểm tra số điện thoại, nhưng chưa có máy chủ trả lời. |
| Vậy "đồng bộ" nghĩa là gì? | Trogiang.ai kiểm tài khoản trực tiếp với cơ sở dữ liệu tài khoản FLYER qua API production (api.flyer.us/v2/graphql). Hai trang cùng dựa vào một nguồn tài khoản, không cần chép dữ liệu. |
| Logo và luồng đăng nhập dùng lại được không? | Được. Trogiang.ai dựng từ chính mã nguồn của giaovien với cờ thương hiệu riêng. |
| Thành phần | Quy tắc |
|---|---|
| Vị trí | Thanh điều hướng dính ở đầu trang, nhóm nút bên phải: Vào ứng dụng · Đăng nhập · Dùng thử miễn phí. |
| Kiểu | Nền trắng, viền và chữ tím #6a309b, cao 40px; nền tím nhạt khi rê chuột. |
| Điện thoại | Luôn hiện. Các liên kết Môn học, Tính năng, Cách dùng, Dạng câu hỏi, Promax 2 và nút Vào ứng dụng ẩn đi. |
| Đích | /vi/login, trang đăng nhập sẵn có của ứng dụng. |
| Mã kiểm thử | data-testid="landing-login" |
/vi/login.viewerLogIn của API production, thiết bị WEB_TEACHER. Mật khẩu chỉ đi qua Worker, không được lưu hay ghi log.teacherProfile), rồi đăng xuất ngay phiên production vừa tạo. Không giữ token production nào.tg_sess.INVALID).| Trường hợp | Kết quả |
|---|---|
| Số đã có tài khoản FLYER | Thông báo "Số điện thoại này đã có tài khoản FLYER. Vui lòng đăng nhập." (mã ALREADY_EXIST). |
| Số mới | Vào bản dùng thử với vai trò giáo viên mới. Không tạo tài khoản production, vì đăng ký trên production cần mã OTP qua SMS và phần này chưa được nối. |
| Ô nhập OTP kiểm tra số | Worker hỏi identifierExists của production, thử ba dạng: đúng như đã nhập, dạng 0xxx và dạng +84xxx. |
| Vai trò | Khi nào | Nội dung trong ứng dụng |
|---|---|---|
guest | Chưa đăng nhập | Dữ liệu mẫu như trước |
sample | Tài khoản mẫu của bản dùng thử | Dữ liệu mẫu; không hỏi production |
existing | Tài khoản FLYER có hồ sơ giáo viên | Không gian dùng thử trống (chưa có lớp, học sinh, bài), gói Basic, mang tên giáo viên; bỏ qua bước thiết lập ban đầu |
new | Tài khoản FLYER chưa có hồ sơ giáo viên, hoặc số mới đăng ký | Luồng giáo viên mới, bắt đầu từ bước chọn vai trò |
| Biện pháp | Chi tiết |
|---|---|
| Mật khẩu | Chỉ chuyển tiếp tới production; không lưu, không ghi log. |
| Token production | Đăng xuất ngay sau khi đọc tên giáo viên. |
| Cookie phiên | tg_sess, ký HMAC-SHA256, HttpOnly, Secure, SameSite=Lax, hạn 30 ngày. tg_lo đánh dấu đã đăng xuất. |
| Giới hạn số lần thử | 10 lần trong 15 phút cho mỗi địa chỉ IP, tính riêng cho đăng nhập, đăng ký và kiểm tra số. Quá giới hạn: "Bạn đã thử đăng nhập quá nhiều lần. Vui lòng thử lại sau 15 phút." |
| Yêu cầu từ trang khác | Yêu cầu POST có Origin khác trogiang.ai bị từ chối (403). |
| Máy chủ tài khoản lỗi | "Không kết nối được máy chủ tài khoản FLYER. Vui lòng thử lại sau." (502) |
| Độ dài đầu vào | Tên đăng nhập tối đa 120 ký tự, mật khẩu tối đa 200 ký tự. |
| Vị trí | Tệp từ 03/11/2026 |
|---|---|
Thanh bên ứng dụng (components/Logo.tsx) | /static/images/new-icon.png; trước đó là /static/images/trogiang/icon.png |
| Thanh điều hướng trang giới thiệu | /static/images/new-icon.png |
| Biểu tượng trên tab trình duyệt | /static/logo/logo_flyer.png |
Tệp new-icon.png trên trogiang.ai trùng khớp từng byte với tệp của giaovien.phongthiao.com. Màu chủ đạo và bố cục của ứng dụng không đổi.
| Hạng mục | Nội dung |
|---|---|
| Nguyên nhân | Ba ảnh /home/img/builder.png, editor.png, subjects.png khai báo width="1280" height="800". CSS có img{max-width:100%} nhưng thiếu height:auto, nên ảnh co chiều ngang mà vẫn cao 800px: hiển thị 515 × 800. |
| Cách sửa | img{max-width:100%;height:auto;display:block} |
| Ảnh mới | Chụp lại ở 1920 × 1200, gói Promax 2, không còn bong bóng Bingo, nút góp ý và dải hướng dẫn. |
| Kết quả | Máy tính 515 × 322, điện thoại 348 × 218, đúng tỉ lệ 16:10. |
| Số dạng | "115 dạng câu hỏi: 16 dạng chung cho ngoại ngữ và 99 dạng riêng của 8 môn". Thẻ từng môn ghi số dạng: Tiếng Anh 16, Tiếng Việt +13, Tiếng Trung +13, Tiếng Nhật +14, Tiếng Hàn +13, Toán +13, Vật lý +9, Hóa học +10, Ngữ văn +14. |
| Đường | Vai trò |
|---|---|
GET /api/demo-session | Trả vai trò, tên đăng nhập và tên của phiên; { role: null } khi đã đăng xuất; { role: 'guest' } khi chưa đăng nhập |
POST /api/demo-login | Kiểm mật khẩu bằng viewerLogIn, ghi phiên, đăng xuất phiên production |
POST /api/demo-signup | Số đã có tài khoản: ALREADY_EXIST; số mới: vào bản dùng thử |
POST /api/demo-exists | identifierExists của production cho ô nhập OTP |
POST /api/demo-logout | Xóa phiên, đánh dấu đã đăng xuất |
GET /api/demo-guest?next=… | Bỏ dấu đã đăng xuất, chuyển tới next; chỉ nhận đường dẫn nội bộ |
| Tệp | Nội dung |
|---|---|
~/partner-web-trogiang-kit/demo-auth.ts | Mô-đun đăng nhập, chạy trên cả hai Worker, được deploy.sh chép vào khi triển khai |
src/demo/engine.ts | Hỏi Worker khi đăng nhập, đăng ký, đăng xuất; dựng không gian cho giáo viên đã có tài khoản |
public/home/index.html | Trang giới thiệu: nút Đăng nhập, logo, ảnh tính năng, số 115 dạng |
src/components/Logo.tsx | Logo trong ứng dụng |
| Worker | Phục vụ |
|---|---|
flyer-teacher-trogiang | Ứng dụng |
flyer-teacher-trogiang-front | Tên miền trogiang.ai và tệp tĩnh, gồm trang giới thiệu |
/api/demo-* trừ demo-guest trả 404, không cấp phiên nào; engine giữ cách đăng nhập trong trình duyệt như trước.| # | Nội dung | Người thực hiện | Trạng thái |
|---|---|---|---|
| 1 | Mô-đun đăng nhập, nút Đăng nhập, logo, ảnh tính năng, số 115 dạng | — | Đã lên 03/11/2026 |
| 2 | Đặt khóa SESSION_SECRET cho flyer-teacher-trogiang và flyer-teacher-trogiang-front (wrangler secret put SESSION_SECRET). Trước bước này, trang hoạt động như cũ. | Chủ sản phẩm | Chờ |
| 3 | Kiểm tra trên bản live sau khi kích hoạt: tài khoản giáo viên thật, mật khẩu sai, số đã có tài khoản ở trang đăng ký, giới hạn 10 lần | QC | Sau bước 2 |
| 4 | Nối đăng ký production có OTP để số mới thành tài khoản FLYER thật | Backend | Câu hỏi mở |
| 5 | Chụp lại /home/img/builder.png: ảnh hiện tại chụp trước đợt 99 dạng, còn hiện 50 dạng và logo cũ | — | Cần làm |
Các mức dưới đây là mục tiêu đề xuất để đội thảo luận, áp dụng sau khi kích hoạt; chưa có số liệu nền.
| Chỉ số | Cách đo | Mục tiêu đề xuất |
|---|---|---|
| Đăng nhập thành công | Lượt đăng nhập thành công trên tổng lượt thử | ≥ 85% |
| Chuyển từ đăng ký sang đăng nhập | Tỷ lệ lượt nhận thông báo "đã có tài khoản FLYER" đăng nhập thành công trong cùng phiên | ≥ 70% |
| Lỗi máy chủ tài khoản | Tỷ lệ phản hồi 502 trên tổng lượt đăng nhập | < 1% |
| An toàn | Sự cố lộ mật khẩu hoặc token production | 0 |
| Dùng nút Đăng nhập | Tỷ lệ người xem trang giới thiệu nhấn Đăng nhập | Đo 2 tuần đầu để đặt mốc |
Trang trogiang.ai chạy thật bên trong khung iPhone và iPad. Cùng một địa chỉ nạp vào cả hai khung để thấy thanh điều hướng và nút Đăng nhập đổi theo bề ngang.
/vi/login chuyển người xem vào ứng dụng với dữ liệu mẫu.Mở riêng trang đang xem: trogiang.ai/
Tab này ghi lại bản đang chạy trên https://trogiang.ai. Ảnh chụp và kiểm tra ngày 03/11/2026.
| Hạng mục | Kết quả |
|---|---|
| Nút Đăng nhập (máy tính, điện thoại) | Đạt Hiển thị, dẫn tới /vi/login |
/api/demo-guest?next=/vi/explore | Đạt 302 tới /vi/explore |
/api/demo-session | Chưa kích hoạt 404 |
/vi/login với người xem mới | Chưa kích hoạt Chuyển vào ứng dụng, dữ liệu mẫu |
| Logo | Đạt new-icon.png, trùng tệp của giaovien.phongthiao.com |
| Ảnh tính năng | Đạt 515 × 322 trên máy tính, 348 × 218 trên điện thoại |
| Số dạng trên trang giới thiệu | Đạt 115 dạng: 16 chung và 99 theo môn |
Nội dung ảnh builder.png | Cần làm Còn hiện 50 dạng và logo cũ |
Trang giới thiệu · https://trogiang.ai/. Thanh điều hướng có nút Đăng nhập; ảnh Builder bên phải đúng tỉ lệ. Chụp 03/11/2026.
Chín môn học · mỗi thẻ ghi số dạng câu hỏi của môn. Chụp 03/11/2026.
Một trợ giảng, trọn vòng dạy học · thẻ "Soạn đề theo môn" ghi 115 dạng câu hỏi. Chụp 03/11/2026.
Trình soạn hiểu từng môn · ảnh editor.png sau khi sửa. Chụp 03/11/2026.
Mở /vi/login khi chưa kích hoạt · người xem được chuyển vào trang Khám phá với dữ liệu mẫu. Chụp 03/11/2026.
Video giới thiệu dạng hoạt hình 2D của tính năng này sẽ được bổ sung sau.