30/09/2018, 18:04

Thắc mắc về tương tác giữa user Social Network và Server

Mình đang làm một ứng dụng Notes để học tập , ứng dụng này có thể gởi register, login, send note data để lưu trữ trên server và cũng có thể download note data từ server về.
Mình có đăng kí một host server, trên server này có web service (dùng PHP và MySQL) để kết nối với client Android. Web Service này cho phép login, register, lấy data notes của user về dạng JSON.
Mọi thứ hoạt động bình thường nếu register tài khoản trên chính server và login bằng tài khoản này.

Hiện tại mình muốn tích hợp thêm việc Login bằng Facebook nhưng có một số thắc mắc như sau.
Sau khi login bằng facebook, tạo các note và tiến hành gởi lên server. Tuy nhiên do user facebook này trên server chưa có record, thành ra trên server sẽ không có dữ liệu nào cả. Vì vậy các request gởi lên sẽ không thành công.
Vậy chỗ này làm sao mình có thể xử lí được nhỉ .

Mình thấy một số ứng dụng khác cũng cho phép login bằng các social network nhưng ko hiểu lúc đó việc tương tác với server sẽ hoạt động như nào. Mong được giải thích rõ.

Cương Nguyễn viết 20:16 ngày 30/09/2018

Có 2 kiểu:
1: Muốn login vào app của bạn thì chỉ cần login qua facebook, với kiểu này thì app của bạn không cần lưu trữ thông tin User, Thông tin User sẽ lấy từ facebook, coi như facebook là chức năng login của app bạn.
-> cách này app bạn khó mà làm được vì sẽ phải đập toàn bộ chức năng login hiện tại và dữ liệu cũ.

2: Muốn login vào app của bạn thì phải có account của app (Kiểu này chắc là kiểu mà app bạn sẽ làm):

  • Khi user login bằng facebook, hệ thông của bạn tự tạo cho họ 1 account với Username là email của facebook (hoặc là 1 username app bạn tự sinh và bảo đảm nó là duy nhất, hoặc sẽ yêu cầu user đăng ký username).
  • Yêu cầu người dùng phải đăng ký pasword ngay sau khi login facebook.
  • Thông tin facebook của User sẽ được lưu trữ trong bảng User của app bạn.
  • User sẽ có 2 cách login, bằng account của bạn hoặc bằng facebook.

P/S: bạn tham khảo thêm ở đây nhé:
https://developers.facebook.com/docs/facebook-login/multiple-providers

Hnib viết 20:08 ngày 30/09/2018

Cám ơn bạn, mình sẽ chọn cách thứ 2 như bạn nói để implement vào ứng dụng của mình.
Chỉ có điều login vào bằng facebook rồi, sau đó lại bắt user nhập vào password mới một lần nữa thì hơi kì kì ấy nhỉ.
Nếu mình có thể tự tạo một password cho họ luôn và tiến hành đăng kí ngầm trên server thì liệu có ổn ko nhỉ. Password mình có thể tự tạo bằng một giải thuật gì đó dựa và facebook email của user. Sau khi người dùng login facebook thành công thì cũng giống như là login bằng chính tài khoản đã đăng kí trên server rồi ko cần phải nhập lại password nữa.

Cương Nguyễn viết 20:19 ngày 30/09/2018

Cũng được, nhưng phần bảo mật phải rất cẩn thận vì nếu lộ thì sẽ lộ hết toàn bộ User

Cương Nguyễn viết 20:06 ngày 30/09/2018

Mình thì nghĩ vẫn nên yêu câu fngười dùng đăng ký pass. Login bằng facebook chỉ là option phụ của User giúp user thêm 1 số tính năng như: share, like, post to fb…

Bạn cũng nên thêm tính năng support user cũ add acc facebook nữa.

Jack Vo viết 20:13 ngày 30/09/2018

Mình thấy có vài website khi nó muốn authenticate từ account của 3rd-party như Google, Microsoft, GIT, …etc. Hay có thông báo là bạn có cho phép web hoặc app truy cập vào personal information hay ko ?
Cái vụ này cũng hơi nhạy cảm nếu như bạn ko muốn infor của mình bị truy cập bới một ứng dụng mà bạn not sure là sẽ sử dụng thường xuyên.
Do đó website nên có 02 option
1.Account trên web, người dùng manual create user
1.Dùng account trên các ứng dụng phổ biến khác như : Google, Micrsoft, GIT, facebook, …etc.

Bài liên quan
0