2

ユーザーが絵を描くことができる簡単なアプリケーションがあります。Android、IOS、および Web ベースのバージョンがあります。また、ユーザーが自分の写真を App Engine サーバーに保存できるようにし、他のユーザーと共同作業できるようにしたいと考えています。認証といくつかの権限スキームの基礎として Google アカウントを使用したいと考えています。

Android(またはIOS)でユーザーのGoogleアカウントを検証/認証する方法がわかりません。誰かが助けてくれるか、正しい方向に向けてくれることを願っています。これが私がこれまでに理解していることです:

Web ベースのクライアントでは、Google Web ツールキットの UserService を使用するだけです。ただし、私のアプリ エンジン サーブレットでは、何を使用すればよいかわかりません。現在、サーブレットには次のようなコードがあります。

  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws IOException, ServletException
{
    OAuthService oauth = null; 
    oauth = OAuthServiceFactory.getOAuthService(); 
    User user = oauth.getCurrentUser();
    // Do stuff
}

私のAndroidアプリケーションでは、次のようなことをすることになっていると思います:

1) AccountManager からアカウントを取得する

2) 電話:

accountManager.getAuthToken
(account,  // Account 
"oauth2:https://www.googleapis.com/auth/userinfo.profile",//AUTH Token Type
null,   // Options
this,  // Activity
new MyAccountsManagerCallBack(),  // call-back
null);    // Handler

これにより、認証トークンが提供されます。

3) ?? 利益 ??

これは私が迷っているところです。この認証トークンを平文のクエリ パラメータとしてアプリ エンジン サーバーに送信し、Web サーバーから userinfo/profile API に要求を送信しますか? それは安全ではないようです。

OAuthService を使用して以前のコードを機能させる方法はありますか?

OAuth 2 のサンプルでは Google タスク API を使用していますが、アプリ エンジン API を使用したいと考えています。Cookie、Webビュー、タイトルなどを使用してOAuth 1の情報を見つけましたが、OAuth 2には何もありません。また、サーバー側の検証方法を実際に教えてくれるものもありません。

ここで何をすべきか本当にわかりません。ご支援いただければ幸いです。

4

1 に答える 1

0

明確にするために、これはアプリ エンジンで提供される私の Java サーブレットの例です。

public class ServletSecureData extends HttpServlet { 
  @Override
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    UserService usersrvc = null;      
    usersrvc = UserServiceFactory.getUserService();
    User user = usersrvc.getCurrentUser();
    if(user == null)
      throw new IOException();

    Random r = new Random(System.currentTimeMillis());
    int num = r.nextInt(10);
    PrintWriter out = response.getWriter();
    out.printf("Security !! %s radioactive man! %d", user.getEmail(), num);
    out.close();
  }
}

このサーブレットは、web.xml ファイルで定義されたセキュリティ制約で保護されていました。Android クライアントを使用してこのサーブレットにアクセスできるようにしたいと考えていました。Oauth を使用する必要があると思っていましたが、古い廃止されたサービス ClientLogin を使用する必要があることが判明しました。

このサイトのコードに基づいて実装しました: http://blog.notdot.net/2010/05/Authenticating-against-App-Engine-from-an-Android-app

于 2013-07-22T18:41:02.367 に答える