我想用sprinboot和instagram测试openID。在instagram中设置我的应用并填写网站URL和有效的重定向URL后,服务器返回OAuthException 400和消息:重定向URI与注册的重定向URI不匹配。我使用springboot +安全性:
我的application.properties文件如下:
security.oauth2.client.client-id=MYID
security.oauth2.client.client-secret= MYSECRET
security.oauth2.client.access-token-uri=https://api.instagram.com/oauth/access_token
security.oauth2.client.user-authorization-uri=https://api.instagram.com/oauth/authorize
security.oauth2.resource.user-info-uri=https://api.instagram.com/v1/users/selfl
在我的安全文件中,我有:
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/test2").authenticated();
}
我的第二个端点工作正常,但是当我转到localhost:8080 / test2时,我得到了通过Instagram登录的表单,但是提交后出现错误。在instagram管理客户端中,我的网站URL为https://localhost:8080/,有效的重定向URL为https://localhost:8080/login
答案 0 :(得分:1)
我遇到了类似的问题,直到意识到我已经将重定向URI注册为https://localhost:8080/login/,而redirect_uri
作为查询参数传递了
授权请求中的https://localhost:8080/login。请注意,/
中缺少尾随的redirect_uri
。
这可能不是您要面对的确切问题,如果不是,我首先使用浏览器的开发工具(按 F12 ),然后按照{{3} }到Instagram登录名,并验证连接到客户端的已注册重定向URI与redirect_uri
请求参数完全相同。