1
나는 Facebook, Google 같은 다른 공급자를 사용하여 사용자로 로그인하는 프로젝트의 요구 사항이 있습니다. 이를 위해 소셜 인증 플러그인을 사용하고 있습니다. 그것은 페이스 북과 함께 잘 작동하지만 googleplus와 함께, "상태 매개 변수 값이 예상 값과 일치하지 않습니다"라는 오류가 발생합니다.이 오류는 getUserProfile()에서 사용자가 Google 앱에서 리디렉션 할 때 발생합니다. 그래서 어떻게 해결할 수 있습니까? 이.상태 매개 변수 값이 예상 값과 일치하지 않습니다.
Dependencies are :
runtime "org.brickred:socialauth:4.7"
compile "org.brickred:socialauth:4.7"
내 socialauth 컨트롤러가 소셜 인증 4.6을 사용할 수
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.7 일 사회적 인증을 사용하여 문제가 발생 4.6, 문제가 해결됨 –