Làm thế nào để làm cho nó mở rộng
Trước tiên, bạn nên chú ý tất cả những người này sử dụng cùng một cơ chế để đăng nhập. Tất cả họ đều sử dụng OAuth để xác thực. Điều này bạn cần tận dụng bằng cách bắt đầu với một thư viện OAuth chung. Không sử dụng thư viện riêng của họ để xác thực, những thư viện này sẽ không thể sử dụng được cho các nhà cung cấp khác. Nếu bạn nhận được hang OAuth2, việc thêm nhiều nhà cung cấp là khá dễ dàng.
Thật không may, bạn cần hai người trong số họ, vì twitter vẫn chưa nhảy vào nhóm nhạc OAuth2.
OAuth cần bạn tạo giao diện cho bên xác thực. Các mã thông báo sẽ được trao đổi máy chủ với máy chủ. Tạo một điểm vào, có thể xử lý tất cả các giao tiếp.
Mã thông báo phải được lưu trữ trong một bảng riêng biệt từ tài khoản của bạn, điều này là do chúng có thể là nhiều mã thông báo và nhiều hồ sơ được liên kết. Một số dịch vụ cung cấp cho bạn hai mã thông báo, một trong số đó là mã thông báo làm mới.
Bây giờ bạn thiết kế một giao diện, gói gọn các chức năng khác mà bạn cần. Cá nhân tôi sẽ thiết lập một dịch vụ REST riêng cho việc này. Bằng cách này bạn có thể dễ dàng mở rộng xác thực đến những nơi khác.
Một số dịch vụ sử dụng JSON để giao tiếp, các dịch vụ khác sử dụng XML, v.v. Đối với người dùng trước, bạn cần thống nhất tất cả chúng. Đây là một quá trình khá đau đớn, nhưng có thể rút ra một số căn cứ phổ biến ở đây.
Một vấn đề khác ở đây là không phải tất cả các dịch vụ đều cung cấp cùng chức năng. Điều này có thể có nghĩa là các dịch vụ của bạn không thể cung cấp API đầy đủ như bạn đã chỉ định. Bạn cần phải có một chiến lược ở đây, để cho ứng dụng hạ cấp một cách duyên dáng.
Tất cả điều này sẽ đảm bảo bạn có thể dễ dàng thêm các nhà cung cấp bên thứ 3 mới.
Vấn đề về mã thông báo
Các mã thông báo bị giới hạn về thời gian, do đó bạn cần một vài công việc định kỳ, có thể kiểm tra xem mã thông báo có còn sử dụng được hay không, nếu không bạn phải xóa nó. Bạn cũng có thể làm mới mã thông báo theo cơ chế này.
Đôi khi xảy ra, người dùng rút lại mã thông báo. Hãy sẵn sàng cho việc này.
Lưu trữ dữ liệu
Nếu bạn có thiết kế này, bạn cần suy nghĩ về dữ liệu bạn cần. Điều này sau một phần từ giao diện vừa tạo của bạn. Thiết kế một số bảng cho điều này và xem nếu dữ liệu thực sự có thể truy xuất được. Một số dịch vụ không cho phép bạn lấy nhiều dữ liệu. Bạn cũng nên tính đến việc bạn càng cần nhiều dữ liệu, thông điệp về quyền riêng tư càng trở nên nặng nề. Vì vậy, hãy khiêm tốn trong nhu cầu của bạn, nếu không người dùng sẽ không sử dụng nó.
Để xác minh thêm, bạn có thể lưu trữ các cấu hình trong một bảng riêng biệt nhưng được liên kết với người dùng của bạn. Điều này sẽ cung cấp cho bạn nhiều thông tin hơn về ai đó.
Ngoài ra kiểm tra luật địa phương của bạn, đối với một số dữ liệu bạn cần thêm biện pháp phòng ngừa.
Điều cuối cùng
Đừng phạm lỗi khi bạn không tạo tài khoản trên các dịch vụ của riêng bạn. Nếu người dùng bị cấm từ facebook, anh ta sẽ không thể đăng nhập vào dịch vụ của bạn. Đây là một tình huống bạn không muốn tạo ra. Điều này thường bị bỏ qua.