2012-02-12 30 views
7

Tôi đang cố gắng xây dựng nền tảng cho ứng dụng và máy chủ iPhone của mình. Tôi có người dùng sẽ đăng ký và đăng nhập từ ứng dụng iPhone. Trong thông tin đăng nhập trang web thông thường, máy chủ http sẽ cung cấp cookie để cho phép các yêu cầu tiếp theo của người dùng vẫn được xác thực. Tôi nên xử lý điều này trên iPhone như thế nào? Tôi có nên chỉ gửi người dùng/mật khẩu mỗi lần tôi có một GET hoặc POST của NSURLConnection không? Điều đó có vẻ quá mức. Hay tôi sử dụng khung ASIHTTPRequest để sử dụng cookie. Bất cứ ai có thể chỉ cho tôi đi đúng hướng để thực hiện đúng không?Làm thế nào để xử lý sự kiên trì xác thực người dùng trong IOS?

Cảm ơn!

Trả lời

8

Gửi tên người dùng và mật khẩu trong mọi yêu cầu không phải là điều tuyệt vời.

Bạn có thể sử dụng bất kỳ thứ gì bạn muốn gửi cookie. Nó chỉ là một tiêu đề HTTP khác. Nhưng điều đó đặt ra câu hỏi về những gì có trong cookie. Nó phụ thuộc vào kiến ​​trúc máy khách/máy chủ của bạn là gì. Các ứng dụng web sử dụng các khóa phiên vì các máy khách web truyền thống chưa nắm giữ bất kỳ trạng thái nào để máy chủ ứng dụng phải làm như vậy. Khách hàng bản địa có thể có tất cả các loại trạng thái và vì vậy thường không cần máy chủ để cung cấp.

Nhưng bạn cần xác thực. Đó là những thứ như OAuthOAuth 2 dành cho. Chúng cho phép bạn xác thực một lần và sau đó sử dụng mã thông báo có thể bị vô hiệu hóa phía máy chủ. Loại giống như các phiên sống rất dài mà không có dữ liệu.

Chúng hơi phức tạp nhưng có các thư viện nguồn mở cho cả phần máy chủ và ứng dụng khách hoặc bạn có thể cuộn của riêng mình. Hầu hết các biến chứng là nhận được mã thông báo ban đầu mà bạn có thể đoản mạch nếu bạn sở hữu máy khách và máy chủ. OAuth có thể khá phức tạp vì tất cả các yêu cầu được ký bằng một mã thông báo bí mật. OAuth 2 có thể đơn giản như một bí mật được chia sẻ (do đó yêu cầu SSL) trong cookie.

+0

Câu trả lời rất chi tiết cho một chủ đề rất thú vị. Cảm ơn bạn. – Francesco

+1

OAuth có quá mức cần thiết nếu tôi chỉ có 2 chân không? Chỉ cần iPhone và máy chủ của tôi. Một mã thông báo truy cập (lưu trên iPhone) có hoạt động đầy đủ không? – Ryan

+0

Miễn là bạn thực hiện tất cả các yêu cầu của mình qua SSL, có. Đó là khá nhiều những gì OAuth 2 thoái hóa trong dòng chảy đơn giản nhất. – smparkes

Các vấn đề liên quan