0

論介以外のgwtアプリケーションがあり、ユーザーがgoogledocsapiを介してオンラインでドキュメントを作成できるようにするモジュールがあります。

これを行うには、最初にユーザーにドキュメントの名前とタイプを入力するように依頼します。次に、指定されたパラメータを使用してgoogle docs apiを介して新しいドキュメントを作成し、そのサーブレットのonSucces部分が、クライアント側で新しいドキュメントを開くために使用される編集リンクを返します。作成したドキュメントを編集するページ。

問題は、editLinkユーザーを開こうとするたびに、ログイン情報を入力する必要があるということです。これを解決するために、私はGoogleクライアントログインを使用しようとしますが、私は完全に失われていると思います。

まず、ユーザーのユーザー名とパスワードを持っていて、それらを直接使用できます。検索した後、通常はこのようなトークンを返すいくつかの例を試しまし。今、私はトークンで何をすべきですか?ログインプロセスを完了するためにどのように使用できますか、またはログインを行うための別の方法を完全に見つける必要がありますか?これらすべてのoauth1、oauth2などのドキュメントは私を少し混乱させました。

これが私のステップです。

サーバ側;

    LinkedHashMap<String, String> hashMap = new LinkedHashMap<String, String>();

    // Login
    DocumentList docList = new DocumentList("document");
    docList.login(ServletUtil.googleDocsLoginInfo().get("username"), ServletUtil.googleDocsLoginInfo().get("password"));

    //Create document with a unique suffix
    String docName= parameterName+ "-Created-" + new Date();
    docList.createNew(docName, dosyaTur);

    // Find the created document and store editLink
    DocumentListFeed feed = docList.getDocsListFeed("all");

    for (final DocumentListEntry entry : feed.getEntries()) {

        if (entry.getTitle().getPlainText().equals(docName)) {

            hashMap.put("editlink", entry.getDocumentLink().getHref());

        }

    }

    return hashMap;

そしてクライアント側。

    @Override
    public void onSuccess(LinkedHashMap<String, String> result) {


        String editLink = result.get("editlink");

        Window.open(editLink,"newwindow","locationno");

    }

あなたの助けをありがとう。

4

1 に答える 1

2

クライアントログインの代わりにOAuthを使用することをお勧めします。これは、古くて安全性が低くなっています。機能は基本的に同じです(OAuth 2.0の場合、ログインを処理する方法は他にもあります)。

OAuthを介してAPIにアクセスする方法を理解しようとすると非常に混乱するので、少し分解してみます。

OAuth 2.0を使用している場合は、このようなライブラリを使用するか、自分でライブラリを試すことができます(Android用に作成しましたが、これはWebアプリを含む他のJavaアプリでも機能します)

これは、ユーザーがアプリで初めてログインしたときに発生することです。

  1. >アプリは、アプリに関する情報を含む承認リクエストを送信します。たとえば、アプリはgoogleに登録する必要があるため、特別なアプリケーションキーがあります。
  2. <サーバーからURLが送信され、新しいブラウザウィンドウで開き、ユーザーにログインさせます。そこで彼はあなたのアプリが彼のアカウント(またはその一部)にアクセスすることを許可するように求められます-彼が確認すると、彼はコピーする必要のある認証コードを求められます
  3. >ユーザーがアプリに戻り、認証コードを尋ねます。彼がそれを与えた後、あなたのアプリは再びサーバーに接続し、ユーザーのある種の承認付与としてコードを送信します。
  4. <サーバーはアクセストークンで応答します
  5. ヘッダーメッセージに隠されているサーバーへのすべてのリクエストで、このアクセストークン(ベアラートークンとも呼ばれます)を使用するだけです。

申し訳ありませんが、GWTを使用したことがないため、現時点ではこれ以上正確な回答を提供することはできません。私が言えるのは、OAuth2を試してみることです。これは、実際には非常に単純であり(認証フロー、ベアラートークンなど、このような紛らわしいものをすべて学習した後)、ユーザーが最初のログインを実行すると、非常に快適になります。

于 2012-04-23T23:33:32.060 に答える