2011-07-14 31 views
6

Tôi đang phát triển một ứng dụng dành cho Android, ứng dụng này sẽ có phía máy chủ giống api. Và ứng dụng này sẽ có cơ chế đăng nhập người dùng. Tôi muốn sử dụng tài khoản google/fb/twitter làm thông tin đăng nhập, vì mục đích của ứng dụng là rất được phát hiện.Sử dụng tài khoản Google làm Đăng nhập ... tiếp theo là gì?

Tôi đã đọc về việc sử dụng Tài khoản Google được lưu trữ trong điện thoại làm xác minh người dùng (Howto use Google Accounts as login). Vấn đề là tôi không biết phải làm gì? Như tôi đã hiểu, Người quản lý tài khoản, cuối cùng sẽ cho tôi một mã thông báo. Vậy tôi phải làm gì với nó? Làm thế nào để tôi thông báo cho phía máy chủ mà người dùng đã đăng nhập? Làm cách nào để lưu trữ mã thông báo này, vì tôi hiểu rằng mã thông báo này có thể thay đổi khi bị vô hiệu sau một thời gian ...

Và một điều khác. Tôi phải làm gì khi người dùng nhập tài khoản G của mình lần đầu tiên? Tôi muốn lấy hình đại diện và tên hiển thị G của mình, ví dụ và lưu trữ chúng trên máy chủ, do đó, lưu người dùng một loạt các nhấp chuột? Tôi gửi chúng bằng cách nào đó từ điện thoại hoặc tôi nhận được chúng bằng cách nào đó từ máy chủ?

Câu hỏi này cũng có thể nảy sinh cho FB sau này.

Hope tôi đã hỏi câu hỏi của tôi một cách chính xác, vì đây là một chút câu hỏi tổng quát hơn ...

TIA.

Trả lời

1

Google sử dụng OpenId trong khi FB có điều riêng. Bạn sẽ cần các codepath khác nhau cho cả hai.

http://www.sozkan.com/blog/2010/09/24/very-quick-openid-integration-tutorial/

Cấp - điều này dựa trên URL để quản lý dữ liệu - bạn sẽ cần phải quấn này trong mã của bạn nếu bạn muốn nó tất cả xảy ra trong nội bộ. Một khi bạn có các dấu hiệu bạn có thể thông báo cho server-side code của bạn của nó là gì, tuổi thọ, vv

Thông tin về sự khác biệt: http://thenextweb.com/socialmedia/2010/11/04/facebook-connect-oauth-and-openid-the-differences-and-the-future/

+0

Câu hỏi là chính xác quy trình cho ứng dụng khách-máy chủ là gì. Đối với một ứng dụng dựa trên web, câu hỏi này không tồn tại, vì công việc duy nhất được thực hiện ở một nơi duy nhất. Đây là một tình huống khác - người dùng được xác thực trên CLIENT và SERVER vẫn chưa nhận thức được điều đó. Vì vậy, làm thế nào để tôi thực sự thông báo cho anh ta rằng người dùng được xác thực với một thông tin cụ thể và làm thế nào để xác minh tất cả điều này và cứ thế ... – Djumaka

+0

Bạn sẽ xác thực thông qua CLIENT và thông báo cho SERVER khi bạn đã tiếp tục - HOẶC - bạn sẽ làm điều đó theo cách khác xung quanh - yêu cầu khách hàng yêu cầu máy chủ xác thực và sau đó gửi kết quả lại cho khách hàng. Hầu hết các ngôn ngữ máy chủ (PHP, JAVA, Perl, vv) đều hỗ trợ một số loại giao tiếp web (ví dụ: Curl), vì vậy đó là một cách để xác thực. Google cũng có thể cung cấp một đại lộ SOAP. – ethrbunny

+0

Được bỏ phiếu xuống vì tự mình tự mình nhập các URL bằng cách sao chép hành vi của Trình quản lý tài khoản và hủy bỏ danh sách tài khoản đã đăng nhập hiện có của Android. – Phlip

2

Tôi nghĩ this question bao gồm chính xác những gì bạn đang yêu cầu.

Đối với tôi giải pháp tốt nhất đã được đề cập trong bài đăng trên blog this. Nó sẽ chỉ hoạt động với tài khoản Google và giả sử bạn đang sử dụng UserService ở phía AppEngine, nhưng tôi nghĩ nó hoạt động tốt. Tôi hy vọng nó sẽ giúp.

0

Chỉ cần để hoàn thành này (cũ) câu hỏi, và đỗ đoạn mã của tôi ở đâu đó, tôi đã bắt đầu để đăng nhập với Google bằng cách sử dụng Hoạt động PreferenceScreen với onCreate() mã này:

ArrayList<String> list = new ArrayList<String>(); 
    list.add("https://www.googleapis.com/auth/userinfo.profile"); 
    final GoogleAccountCredential credential = 
     GoogleAccountCredential.usingOAuth2(getApplicationContext(), list); 
    Preference acctValue = findPreference("GMail"); // A <Preference> in the XML... 

    acctValue.setOnPreferenceClickListener(new OnPreferenceClickListener(){ 
     @Override 
     public boolean onPreferenceClick(Preference preference) { 
      startActivityForResult(credential.newChooseAccountIntent(), 1); 
      return false; 
     } 
    }); 

Và họ cần thêm những râm ký tự cho thư mục libs của tôi:

google-api-client-android-1.17.0-rc.jar 
google-play-services.jar 
google-api-client-1.17.0-rc.jar 
google-http-client-1.17.0-rc.jar 
Các vấn đề liên quan