2017-09-03 21 views
5

Ứng dụng CI của tôi thực hiện cuộc gọi API tới máy chủ API Rest của bên thứ ba sẽ được tiêu thụ bởi giao diện người dùng. Đầu tiên, ứng dụng kết thúc sẽ nhấn vào ứng dụng CI của tôi và lần lượt sẽ chạm vào bên thứ ba LogInAPI (phiên có giá trị trong 15 phút) và sau khi đăng nhập, chúng tôi cần nhấn các cuộc gọi API tiếp theo bằng cách chuyển khóa (phản hồi loginApi) tiêu đề. Vì vậy, về cơ bản, tôi cần phải đạt tới số loginAPI trong mỗi 15 phút. Tôi đang cố gắng tiếp cận lời hứa góc cạnh kinda trong ứng dụng Codeigniter của tôi không biết làm thế nào để đạt được nó? cách tốt nhất để làm điều đó để ngăn chặn giao diện người dùng nhận được phản hồi trống hoặc phiên hết hạn là gì?CodeIgniter 3 Implement Promise

Trả lời

1

Bạn không cần phải tiếp tục làm mới đăng nhập đó. Tạo dấu thời gian khi bạn nhận được thông tin đăng nhập từ API của bên thứ ba. Sau đó vượt qua nó để kết thúc trở lại trên mỗi yêu cầu.

Trên mặt sau của mỗi cuộc gọi từ dấu kiểm tra giao diện người dùng, nếu hết hạn, không thực hiện cuộc gọi bình thường tới API mà trước tiên hãy nhận thông tin đăng nhập mới, sau đó thực hiện các cuộc gọi được yêu cầu.

Khi trả lời cho mỗi cuộc gọi trả trước cũng có thông tin đăng nhập, để giao diện người dùng nhận được thông tin xác thực mới sau khi gia hạn.

Nếu thông tin đăng nhập là ứng dụng rộng, thì giao diện người dùng không cần phải biết về chúng. Chỉ lưu trữ thông tin đăng nhập trong một số loại lưu trữ (SQL DB, lưu trữ giá trị khóa, v.v.) và thực hiện gia hạn tự động khi thích hợp.

+1

ý tưởng tuyệt vời, thay vì chuyển dấu thời gian đến và cho mỗi yêu cầu bạn có thể tạo mục nhập cookie sẽ bị xóa sau 15 phút trước khi yêu cầu api bạn có thể kiểm tra xem cookie có tồn tại hay không nếu không đăng nhập theo câu trả lời – dEL

+0

Có cách nào để đạt được điều này trong PHP CI hơn là gọi API đăng nhập từ front end –

+0

@PsycheGenie vâng, nhìn vào đoạn cuối của tôi. Bất kỳ mã nào gọi API bên ngoài đều có thể kiểm tra dấu thời gian và đưa ra quyết định đầu tiên phản hồi thông tin xác thực mới và chỉ sau đó gọi api chính. –