1

私たちのプロジェクトでは、facebook、google などの他のプロバイダーを使用してユーザーにサインインする必要があります。このために、ソーシャル認証プラグインを使用しています。Facebookでは正常に動作していますが、googleplusでは「状態パラメータ値が期待値と一致しません」というエラーが発生します.これ。

Dependencies are :
runtime "org.brickred:socialauth:4.7"
        compile "org.brickred:socialauth:4.7"

私のsocialauthコントローラーは

def authenticate(){
            SocialAuthConfig config = SocialAuthConfig.getDefault()
            //You can also pass input stream, properties object or properties file name.
            config.load()
            //Create an instance of SocialAuthManager and set config
            SocialAuthManager manager = new SocialAuthManager()
            manager.setSocialAuthConfig(config)
            // URL of YOUR application which will be called after authentication
            String successUrl = grailsApplication.config.auth.redirect.url
            // get Provider URL to which you should redirect for authentication.
            // id can have values "facebook", "twitter", "yahoo" etc. or the OpenID URL
            String url = manager.getAuthenticationUrl(params.id, successUrl)
            session.setAttribute("authManager", manager)
            redirect (url:url)
        }

        @Secured('permitAll')
        def getUserProfile(){
            try{
                // get the auth provider manager from session
                SocialAuthManager manager = (SocialAuthManager)session.getAttribute("authManager");
                // Pass request parameter map while calling connect method.
                Map<String, String> paramsMap = SocialAuthUtil.getRequestParametersMap(request);
                // call connect method of manager which returns the provider object.
                AuthProvider provider = manager.connect(paramsMap);
                Profile profile = provider.getUserProfile();
                log.debug"user profile"+profile
    //          log.debug"contact"+  provider.getContactList()
            }
            catch(SocialAuthManagerStateException exception){
                log.error("Exception occurs while connecting with SocialAuthManager--->"+exception.getMessage())
            }
        }

プロパティファイル

#googleplus
googleapis.com.consumer_key = XXXXXXXXXXXXXX
googleapis.com.consumer_secret = XXXXXXXXXXXXXXX
4

1 に答える 1

1

これは Version の問題です。social auth 4.6 を使用できます。正常に動作します。

于 2014-12-24T12:51:45.860 に答える