Spring Social Google 登录错误后返回

     2023-02-19     254

关键词:

【中文标题】Spring Social Google 登录错误后返回【英文标题】:Spring Social Google return after login wrong 【发布时间】:2015-05-07 04:33:21 【问题描述】:

我已经为 Facebook、Twitter 和 Google 实现了 Spring social。 对于前 2 个,它可以工作,但 Google 在您允许我的应用程序访问您的 google+ 帐户的 google 页面上接受后将用户重定向到 /signin。 /signin 是 404。如果我为 /signin 创建页面,则显示页面但用户未登录。

我熟悉 connectController 和 GoogleConnectionFactory 的底层机制,但我相信它应该将请求重定向回它的来源并使用访问令牌。我相信这是/auth/google。我尝试了从 /signin 到 /auth/google 的重定向,但没有成功。正如 Twitter 和 Facebook 所述,没有问题。

代码: 公共类 SocialConfig 实现 SocialConfigurer

@Override
public void addConnectionFactories(ConnectionFactoryConfigurer cfConfig, Environment env) 
    cfConfig.addConnectionFactory(new FacebookConnectionFactory(
            env.getProperty("facebook.app.id"),
            env.getProperty("facebook.app.secret")
    ));
    cfConfig.addConnectionFactory(new TwitterConnectionFactory(
            env.getProperty("twitter.consumer.key"),
            env.getProperty("twitter.consumer.secret")
    ));
    cfConfig.addConnectionFactory(new GoogleConnectionFactory(
            env.getProperty("google.app.id"),
            env.getProperty("google.app.secret")));


@Bean
public ConnectController connectController(ConnectionFactoryLocator connectionFactoryLocator, ConnectionRepository connectionRepository) 
    return new ConnectController(connectionFactoryLocator, connectionRepository);

SecurityConfig.java

.apply(getSpringSocialConfigurer()); //to http.

private SpringSocialConfigurer getSpringSocialConfigurer() 
    SpringSocialConfigurer config = new SpringSocialConfigurer();
    config.alwaysUsePostLoginUrl(true);
    config.postLoginUrl("/");

    return config;

jsp。

  //facebook
                <a href="$pageContext.request.contextPath/auth/facebook" class="hidden-xs">
                    <img src="<c:url value="/static/img/fb-login.png"/>" />      
                </a>

//twitter
                <a href="$pageContext.request.contextPath/auth/twitter" class="hidden-xs">
                    <img src="<c:url value="/static/img/twitter-login.png"/>"  />      
                </a>
 //google
            <form name="go_signin" id="go_signin" action="<c:url value="/auth/google"/>" method="POST" class="float-left">          
                <div onclick="this.parentNode.submit();">
                    <img src="<c:url value="/static/img/google-login.png"/>" />      
                </div>
                <input type="hidden" name="$_csrf.parameterName" value="$_csrf.token" />
                <input type="hidden" name="scope" value="https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/plus.login" /> 
            </form>

在谷歌应用程序控制台中,我将重定向 URI 设置为:my_url/auth/google 和 Javascript 起源只是我的网址。 我几乎尝试了所有组合。在您进入 google 登录页面之前,除了 /auth/google 之外的任何内容都会导致重定向 uri 不匹配错误

欢迎任何想法,提前谢谢。

【问题讨论】:

您必须更改 Google 控制台中的设置以允许使用什么 redirect_uri,但随后您必须在代码中的某个地方配置 redirect_uri 实际应该是什么。文档可能在某处说。 我添加了 PostLoginURL 并尝试将其设置为以下形式: 但确实如此不行。 Google Docs 说了以下内容,但在我的情况下似乎没有这样做:用户授权您的应用程序后,他们将被重定向到您的 /oauth/ url。在那里您将收到一个“代码”参数。您可以将该代码交换为访问令牌:这是一个应处理身份验证的 SpringSocialController。 你解决过这个问题吗?我有同样的问题。首次登录后,谷歌将我重定向到 /signin 而不是 /singup 有什么解决办法吗? 【参考方案1】:

这个项目有一个很好的使用 spring-social-google 的工作示例:https://github.com/GabiAxel/spring-social-google-example

【讨论】:

我正在实施本教程:petrikainulainen.net/programming/spring-framework/… 我只需要登录功能。我查看了该项目的源代码。文档说登录控制器注册 POST /signin/providerId,我得到 404。【参考方案2】:

我有类似的问题,登录后,重定向到 /signin,但它不是由谷歌执行的,而是由 Spring Social Google 插件执行的。它将 GET 请求发送到 https://www.googleapis.com/plus/v1/people/me,只有在 Google 控制台中为您的应用程序启用 Google+ Api 时才能调用该请求。

redirect_uri 应该是 /auth/google

https://github.com/GabiAxel/spring-social-google/issues/22 讨论了此问题。在未来的版本中,它将被修复。

【讨论】:

【参考方案3】:

将 pom.xml 中的 spring-social-google 版本更新到 1.0.0.RC1 解决了我的问题。

【讨论】:

Spring Social,在登录时为现有本地用户创建连接

】SpringSocial,在登录时为现有本地用户创建连接【英文标题】:SpringSocial,Createconnectionforexistinglocalusersonsignin【发布时间】:2015-05-1907:30:59【问题描述】:我正在尝试允许现有本地用户使用SpringSocial(主要是google)登录,并在电... 查看详情

spring social google:people API 403 Forbidden due to Legacy People API

】springsocialgoogle:peopleAPI403ForbiddenduetoLegacyPeopleAPI【英文标题】:springsocialgoogle:peopleAPI403ForbiddenduetoLegacyPeopleAPI【发布时间】:2020-02-2700:28:48【问题描述】:我有项目,我必须通过谷歌登录登录。我已经创建了谷歌项目。设置客... 查看详情

Spring social NoSuchMethodError SocialAuthenticationFilter.getFilterProcessesUrl()

】SpringsocialNoSuchMethodErrorSocialAuthenticationFilter.getFilterProcessesUrl()【英文标题】:【发布时间】:2015-03-2003:24:17【问题描述】:我使用弹簧安全登录。现在我正在尝试添加springsocialfacebook登录,但我收到了很多错误信息。首先,当我... 查看详情

Spring Social:当服务器在代理后面时重定向 url

】SpringSocial:当服务器在代理后面时重定向url【英文标题】:SpringSocial:redirecturlwhenserverbehindproxy【发布时间】:2017-09-0315:06:30【问题描述】:在我的SpringBoot应用程序中,我使用SpringSocial(1.1.4.RELEASE)(Facebook、Google、LinkedIn和Twitter... 查看详情

使用Spring Social,Spring安全登录后重定向到原始URL?

】使用SpringSocial,Spring安全登录后重定向到原始URL?【英文标题】:RedirecttotheoriginalURLaftersigninusingSpringSocial,Springsecurity?【发布时间】:2013-09-0202:11:08【问题描述】:春季社会和安全专家,我有以下用例:用户请求一个特定的URL... 查看详情

使用现有用户访问令牌使用 Spring Social 登录 Facebook

】使用现有用户访问令牌使用SpringSocial登录Facebook【英文标题】:FacebookLoginwithSpringSocialusingExistingUserAccessToken【发布时间】:2015-06-2501:33:56【问题描述】:这是我目前拥有的:许多API要求对用户进行身份验证的SpringREST服务“注册... 查看详情

如何通过 REST API 为 Spring-social 和 spring-security 设置登录服务?

】如何通过RESTAPI为Spring-social和spring-security设置登录服务?【英文标题】:HowdoIsetuploginserviceforSpring-socialandspring-securityoveraRESTAPI?【发布时间】:2014-10-0119:31:40【问题描述】:我希望在客户端(没有jsps)上有一个JS应用程序,它只... 查看详情

AngularJS Spring Social Facebook CORS 问题

】AngularJSSpringSocialFacebookCORS问题【英文标题】:AngularJSSpringSocialFacebookCORSproblem【发布时间】:2019-05-1712:44:10【问题描述】:我正在尝试使用在不同端口上运行的AngularJS(1.6)FE和SpringBoot(2.1)BE构建示例登录。我正在使用SpringBootSocial... 查看详情

使用 Spring Social 进行移动注册

】使用SpringSocial进行移动注册【英文标题】:Mobilesignupwithspringsocial【发布时间】:2017-09-2917:45:19【问题描述】:我正在尝试将springsocial用于我的REST服务和我的移动应用程序。我想知道最好的方法是什么。我打算在我的移动应用... 查看详情

Django Social登录/注册使用rest框架

】DjangoSocial登录/注册使用rest框架【英文标题】:DjangoSociallogin/registerusingrestframework【发布时间】:2018-11-0717:58:33【问题描述】:我正在使用DRF作为休息框架,并希望使用社交登录来进行用户注册和登录。目前,我正在使用Angular... 查看详情

spring social facebook + api + angularjs(如何从 angular 调用 -> spring api -> 重定向到 facebook 登录)

】springsocialfacebook+api+angularjs(如何从angular调用->springapi->重定向到facebook登录)【英文标题】:springsocialfacebook+api+angularjs(Howtocallfromangular->springapi->redirecttofacebooklogin)【发布时间】:2014-12-0318:13:02【问题描述】:这 查看详情

Spring Social 和 Spring Security:保护网站资源

】SpringSocial和SpringSecurity:保护网站资源【英文标题】:SpringSocialandSpringSecurity:Securingwebsiteresources【发布时间】:2012-12-2604:31:24【问题描述】:我正在使用spring-social开发一个应用程序,它允许用户通过facebook连接而无需注册,只... 查看详情

wagtailcms是否支持google登录和用户登录添加会话

...交应用程序-Django是一个很好的插件:https://github.com/python-social-auth/social-app-django。另一答案你可以使用djago-all-auth模块https://django-allauth.readthedocs.io/en/latest/installation.html来实现这一目标 查看详情

Spring Security + Google OAuth2 登录:访问令牌为空?

】SpringSecurity+GoogleOAuth2登录:访问令牌为空?【英文标题】:SpringSecurity+GoogleOAuth2Login:accesstokenisnull?【发布时间】:2019-04-1909:56:17【问题描述】:我从默认的SpringSecurityOAuth2登录实现中收到此错误(不使用SpringBoot):[invalid_token_... 查看详情

在 Django 站点上使用 Google+ 登录

...按钮(用django编码),不使用任何第三方工具,如Django-Social-Auth等。所以任何人都可以指点我一些教程或帮助我如何做到这一点。我希望用户通过Google+登录,然后我可以在django视图 查看详情

social-auth 给出“错误”的 facebook id

】social-auth给出“错误”的facebookid【英文标题】:social-authgives"wrong"facebookid【发布时间】:2015-03-2814:30:30【问题描述】:我使用djangosocial-auth进行facebook登录,并且需要获取facebook用户ID以便在facebook聊天xmpp中使用。手动播... 查看详情

在 python-social-auth 中从 google 和 facebook 检索个人资料图片

】在python-social-auth中从google和facebook检索个人资料图片【英文标题】:Retrievingprofilepicturefromgoogleandfacebookinpython-social-auth【发布时间】:2015-06-1700:22:24【问题描述】:如何通过扩展管道使用python-social-auth从google和facebook检索个人资... 查看详情

magento社交登录

MagentoSocialLoginextensionallowsCustomerstologintoyoursiteusingtheiraccountsofvariouspopularnetworks:Facebook,Google,Twitter.http://nwdthemes.com/extensions/social-login/ 查看详情