Requirement
- User là giáo viên đã login trên CSDL tại domain: csdl.edu.vn
- Có thể login vào enetviet.com mà không cần nhập tài khoản và mật khẩu
Flow:
- 1: User login thành công trên trang CSDL
- 2: Click vào button login ENV:
- CSDL call api login/csdl(ma_giao_vien, ma_truong, phone)
- 3: BE ENV:
- Check profile và author thông tin của user?
- User đã login trên app chưa?
- Generate token one time trong redis: key là token, value là user phone
- 4: Return token + url webview
- 5: CSDL redirect to url đã được response + token trên query
- 6: Web-app request login (source từ CSDL) + token.
- 7: BE:
- verify token
- generate và store channel_id
- 8: Xử lý đồng thời
- 8.1: Response về Web-app avatar và tên user để hiển thị, channel_id để Web-app connect socket
- 8.2: Push notification về cho tài khoản user đã login trên Mobile
- 9: User nhận được notification yêu cầu đăng nhập trên WEb-app, xác nhận đồng ý
- Call api cho phép login
- 10: BE nhận được request confirm từ Mobile-app:
- Generate cặp access_token và refresh_token
- 11: Web-app nhận được token do backend emit về và thực hiện luồng login thành công
- 12: Web-app emit xác nhận login thành công lên BE, disconnect socket...
- 13: BE clear token, clear channel_id...