我正在使用Grails OAuth插件。
以下是Config.groovy代码:
oauth {
providers {
google {
api = org.scribe.builder.api.GoogleApi
key = 'XXX.apps.googleusercontent.com'
secret = 'XXX'
scope = 'https://www.googleapis.com/auth/userinfo.profile'
callback = "${grails.serverURL}/oauth/google/callback"
successUri = "${grails.serverURL}/login/google"
}
}
}以下是LoginController代码:
def google() {
Token token = (Token) session[oauthService.findSessionKeyForAccessToken('google')]
def googleResource = oauthService.getGoogleResource(token,
grailsApplication.config.grails.google.api.url)
def googleResponse = JSON.parse(googleResource?.getBody())
log.info "token = ${token}"
log.info "googleResponse = ${googleResponse}"
log.info "accesstoken = ${token.token}"
log.info "id = ${googleResponse.id}"
log.info "name = ${googleResponse.name}"
//println googleResponse.name
//render params
redirect(controller: "Profile",action:"dashboard")
}这是错误
2015-04-22 14:10:55,902 http-bio-8080-exec-8错误errors.GrailsExceptionResolver - OAuthException在处理请求时发生: GET /uxsurvey/oauth/google/认证-参数: redirectUrl:响应体不正确。无法从中提取令牌和秘密:“使用者未注册: 455253656547-3vrklc5phr5shur4l97qhk56ej8o028v.apps.googleusercontent.com”。Stacktrace如下:消息:响应体不正确。无法从中提取令牌和秘密:“使用者未注册: 455253656547-3vrklc5phr5shur4l97qhk56ej8o028v.apps.googleusercontent.com”
这是google客户端ID代码
Client ID
XXX.apps.googleusercontent.com
Email address
XXX.gserviceaccount.com
Client secret
XXX
Redirect URIs
http://localhost:8080/uxsurvey/login/google
Javascript Origins
none发布于 2015-04-25 08:28:28
所有的代码和配置在我看来都不错。我还使用了相同的代码,我的应用程序运行良好(Grails OAuth插件演示)。可能是你的客户身份和秘密是错的。可能是这篇博客文章帮了你。
https://stackoverflow.com/questions/29791871
复制相似问题