1

あらゆる種類のソーシャル ネットワーク アカウントでログインできるログイン モジュールを作成しています。最初のステップは、LinkedIn と Google です。

LinkedIn の部分は正常に動作していますが、Google の部分はそうではありません。戻り URL には OAuth パラメータではなく openid パラメータがあるため、問題は認証前のコードにあると思います。リダイレクト前のコードは次のとおりです。

HttpSession session = request.getSession();
SocialAuthConfig config = SocialAuthConfig.getDefault();
    try {
        config.load("/oauth_consumer.properties");
    } catch (Exception ex) {
        System.out.println(ex);
    }

    //Create an instance of SocialAuthManager and set config
    SocialAuthManager manager = new SocialAuthManager();
    try {
        manager.setSocialAuthConfig(config);
    } catch (Exception ex) {
        System.out.println(ex);
    }

    //URL of YOUR application which will be called after authentication
    String successUrl = "http://localhost:8080/ProjectName/completelogin.do";
    String url = "";
    try {
        url = manager.getAuthenticationUrl(type, successUrl).toString();
    } catch (Exception ex) {
        System.out.println(ex);
    }

    // Store in session
    session.setAttribute("authManager", manager);

    response.sendRedirect(url);

これは、Google の oauth_consumer.properties 部分です。

www.google.com.consumer_key = 81XXXXXX466.apps.googleusercontent.com
www.google.com.consumer_secret = WN0oXXXXXXXHoCeSocQK
www.google.com.custom_permissions=https://www.googleapis.com/auth/userinfo.profile,https://www.googleapis.com/auth/userinfo.email

Google に OpenID 認証の代わりに OAuth 認証を使用させることはできますか? OAuth を使用して別のフレームワークで Google にログオンしましたが、うまく機能しました。今だけ、いくつかのソーシャル サイトを使用したいので、車輪の再発明を続けて socialauth だけを使用したくありません...

4

2 に答える 2

0

https://github.com/3pillarlabs/socialauth/wiki/Sample-Propertiesによる

必要に応じて、または追加のパラメーターを渡す必要がある場合は、OAuth エンドポイント (RequestToken URL、Authorization URL、および AccessToken URL) を設定できます。

  • www.google.com.request_token_url
  • www.google.com.authentication_url
  • www.google.com.access_token_url
于 2015-03-18T17:52:38.467 に答える
0

Google OpenId 認証エンドポイントはhttps://accounts.google.com/o/openid2/authで、OAuth2 エンドポイントは /o/oauth2/auth です。Google に OAuth2 を使用するように指示 (または「強制」) するには、エンド ユーザーを OAuth2 エンドポイントにリダイレクトする必要があります。

于 2013-03-28T21:45:04.670 に答える