あらゆる種類のソーシャル ネットワーク アカウントでログインできるログイン モジュールを作成しています。最初のステップは、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 だけを使用したくありません...