Tôi đã phát triển một API đơn giản để cho phép liên lạc giữa các ứng dụng Android/iPhone và máy chủ của tôi. Trong ứng dụng của tôi, người dùng cần phải xác thực bản thân và họ làm điều đó bằng các thông tin đăng nhập/mật khẩu với các cuộc gọi API sau:Facebook Kết nối để xác thực trên API cá nhân
http://api.myapp.com/login?user=xxx&pass=pass
Application nhận lại:
{ "api_token": "xxxx-xxxx-xxxx-xxxx" }
Vì vậy, về cơ bản tôi trao đổi thông tin của tôi chống lại api_token
.
Tôi muốn thêm hỗ trợ kết nối Facebook. Tôi đã sử dụng thành công SDK Facebook và nhận được chính xác access_token
.
Tuy nhiên, tôi cần phải thực hiện một cơ chế trao đổi access_token
với api_token
Giả sử người dùng đã kết nối với tài khoản của mình với Facebook (trên bảng điều khiển người dùng web của mình), điều gì sẽ thực hiện tốt nhất để tiến hành việc trao đổi ?
Đây là kịch bản mà tôi quan tâm: Ứng dụng A mua mã thông báo truy cập fb cho người dùng có quyền X. Ứng dụng A truy cập url đăng nhập của bạn tại 'http://api.myapp.com/login/facebook ? access_token = ... ' Vì bây giờ bạn có mã thông báo truy cập mà ứng dụng A đã mua, bây giờ bạn có tất cả quyền truy cập giống như người dùng, nếu không có người dùng cho phép bạn làm như vậy (họ ' ve chỉ được cấp quyền cho ứng dụng A). Mặc dù tôi có thể thấy điều này là có thể bảo vệ theo nhiều cách, nhưng dường như nó có vẻ sai và có khả năng vi phạm lòng tin của người dùng. Bạn nghĩ sao? –
Vâng theo một cách có, bạn là đúng, nhưng theo như tôi đang quan tâm, chúng tôi là "App A". IMHO, nó giống như người dùng đăng ký nhận bản tin của chúng tôi: chúng tôi có thể spam người dùng hoặc bán email cho tấn bên thứ ba nhưng chúng tôi không phải vì chúng tôi là công ty có trách nhiệm (chịu trách nhiệm pháp lý) – EricLarch