Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Google Oauth 2.0-重定向uri不匹配,尽管与Google云平台中的授权重定向uri相同_Java_Spring Boot_Vue.js_Oauth 2.0_Google Oauth - Fatal编程技术网

Java Google Oauth 2.0-重定向uri不匹配,尽管与Google云平台中的授权重定向uri相同

Java Google Oauth 2.0-重定向uri不匹配,尽管与Google云平台中的授权重定向uri相同,java,spring-boot,vue.js,oauth-2.0,google-oauth,Java,Spring Boot,Vue.js,Oauth 2.0,Google Oauth,我在许多其他帖子中都看到了这个问题,但没有一个帖子解决了我的问题。我有一个前端Vue.js应用程序和一个spring boot Java应用程序 我正在使用vue google oauth从前端应用程序提示google登录以获取身份验证代码,然后我想使用后端服务器获取用户详细信息并在那里处理逻辑 在Google云平台上,我定义了一个授权重定向URI: 当我在前端发送我的身份验证代码时,我使用了这个完全相同的uri 从“@/assets/js/api”导入api; 从“/AdminNavigat

我在许多其他帖子中都看到了这个问题,但没有一个帖子解决了我的问题。我有一个前端Vue.js应用程序和一个spring boot Java应用程序

我正在使用vue google oauth从前端应用程序提示google登录以获取身份验证代码,然后我想使用后端服务器获取用户详细信息并在那里处理逻辑

在Google云平台上,我定义了一个授权重定向URI:

当我在前端发送我的身份验证代码时,我使用了这个完全相同的uri

从“@/assets/js/api”导入api;
从“/AdminNavigation”导入AdminNavigation;
从“vuex”导入{mapGetters};
从“Axios”导入Axios;
导出默认值{
名称:“仪表板”,
计算:{
…映射器([“IsSignedIn”]),
},
数据(){
返回{
标题:“克里斯托弗的投资组合管理员”,
应用程序说明:
“您可以在此处为前端投资组合网站添加内容。”,
伊西尼特:错,
};
},
组成部分:{
管理导航,
},
方法:{
签名:异步函数(){
试一试{
const authCode=等待此消息。$gAuth.getAuthCode();
Axios.post(“http://localhost:8080/authenticate", {
代码:authCode,
重定向\u uri:“http://localhost:3000/admin/dashboard",
});
}捕捉(错误){
控制台日志(err);
}
},
},
安装的(){
让那=这;
让CheckGautLoad=setInterval(函数(){
that.isInit=that.$gAuth.isInit;
如果(!this.IsSignedIn){
那是什么;
}
如果(即isInit)清除间隔(检查GAUTHLOAD);
}, 1000);
},
};
我的后端服务器接收身份验证代码和重定向uri,这与Google云平台上定义的内容相同

package com.salay.christophersalaypolifolio.controllers;
导入com.google.api.client.auth.oauth2.TokenResponseException;
导入com.google.api.client.GoogleAppis.auth.oauth2.GoogleAuthorizationCodeTokenRequest;
导入com.google.api.client.googleapis.auth.oauth2.GoogleTokenResponse;
导入com.google.api.client.http.javanet.NetHttpTransport;
导入com.google.api.client.json.jackson2.JacksonFactory;
import com.salay.christophersalayportfolio.general.ConstantVariables;
导入org.json.simple.JSONObject;
导入org.json.simple.parser.JSONParser;
导入org.json.simple.parser.ParseException;
导入org.springframework.http.HttpEntity;
导入org.springframework.stereotype.Controller;
导入org.springframework.web.bind.annotation.*;
导入java.io.IOException;
导入静态org.springframework.util.MimeTypeUtils.APPLICATION\u JSON\u值;
@控制器
公共类管理员控制器{
@交叉原点(原点=”http://localhost:3000")
@RequestMapping(value=“/authenticate”,method=RequestMethod.POST,consumes=APPLICATION\u JSON\u value,products=APPLICATION\u JSON\u value)
@应答器
公共字符串身份验证(HttpEntity数据)引发IOException、ParseException{
JSONParser=新的JSONParser();
JSONObject json=(JSONObject)parser.parse(data.getBody());
字符串authCode=json.get(“code”).toString();
字符串redirect_uri=json.get(“redirect_uri”).toString();
试一试{
GoogleTokenResponse=
新的GoogleAuthorizationCodeTokenRequest(新的NetHttpTransport(),新的JacksonFactory(),
ConstantVariables.GOOGLE\u客户端\u ID,
ConstantVariables.GOOGLE\u客户端\u机密,
authCode,重定向_uri).execute();
System.out.println(“访问令牌:+response.getAccessToken());
}捕获(令牌响应异常e){
如果(如getDetails()!=null){
System.err.println(“错误:+e.getDetails().getError());
如果(例如getDetails().getErrorDescription()!=null){
System.err.println(例如getDetails().getErrorDescription());
}
如果(例如getDetails().getErrorUri()!=null){
System.err.println(例如getDetails().getErrorUri());
}
}否则{
System.err.println(e.getMessage());
}
}
返回“”;
}
}
但我得到了以下错误:

 400 Bad Request redirect_uri_mismatch          

我一直在看大量的堆栈溢出问题,到目前为止,没有一个解决方案对我有效。。。有什么想法吗?

听起来你并没有发送你认为是的OAuth详细信息。您是否已从Spring Boot back终端捕获到授权服务器的HTTPS消息?您是否可以在此处发布详细信息

如果有帮助,包括一些关于在Java中配置HTTP代理的注释