Thứ ba, 22/10/2024 Lưu Anh Tài

Mytel Reverse Auction - Error: Auto login qua app MyId không thực hiện đăng nhập ở lần đầu tiên bật web view

Dịch vụ Mytel Reverse Auction

Error: Auto login qua app MyId không thực hiện đăng nhập ở lần đầu tiên bật web view
1. Mô tả lỗi

    Khách hàng sử dụng dịch vụ thông qua webview của app MyID, khi lượng truy cập nhiều, xuất hiện lỗi không tự động đăng nhập khi lần đầu tiên mở dịch vụ.

2. Phạm vi ảnh hưởng

    Khách hàng sử dụng dịch vụ thông qua app MyID

3. Luồng auto login qua app

    3.1. Khách hàng login app MyID

    3.2. Khách hàng click vào Icon/banner/notify Reverse Auction, mở web view dịch vụ

    3.3. App MyId truyền số điện thoại và token app vào index.html của dịch vụ

    3.4. Dịch vụ lấy thông tin số điện thoại và token app gọi API verify và lấy thông tin user của MyID

    3.5. Khi xác thực và thấy thông tin dịch vụ thành công, dịch vụ thực hiện autologin theo thông tin user nhận được

        3.5.1. API nhận được thông tin user, xử lý đăng nhập, tạo token và set vào cookie của trình duyệt

        3.5.2. Frontend nhận được phản hồi đăng nhập thành công từ API, tiếp tục gọi API lấy thông tin của user để hiển thị số điện thoại, số lượng bid, avatar của user. (Lỗi ở bước này)

4. Nguyên nhân

    Khi Frontend nhận được phản hồi đăng nhập thành công từ API web, thực hiện gọi API web để lấy thông tin user, lúc này trong cookie chưa có token của user, dẫn đến API bị chặn ở middleware do API web không nhận được token ở request.

5. Phương án xử lý

    - API web: Trả về token cho user ở respon sau khi đăng nhập thành công.

    - Frontend: Sau khi nhận phản hồi đăng nhập thành công từ API web, Frontend gọi API lấy thông tin user truyền thêm token vào header authorization.

    - API web: Check cả token từ cookie và header, nếu một trong 2 có token thì thực hiện trả thông tin user về cho Frontend.

6. Lưu ý 

    Một số trình duyệt sẽ có thể tắt cookie từ website (tùy theo cấu hình người dùng), nên truyền token vào header để có thể chủ động xử lý.

7. Bài học rút ra

    - Dev cần chú ý hơn về những trường hợp bất đồng bộ

    - Cần test tải, hiệu suất cho dịch vụ để tránh bỏ sót trường hợp mạng chậm hoặc nhiều người sử dụng cùng thời điểm

    - Thường xuyên theo dõi, kiểm tra website dịch vụ, báo cáo, thống kê để phát hiện bất thường và xử lý (nếu có).