gpt4 book ai didi

spring-mvc - Spring 社交 Facebook

转载 作者:行者123 更新时间:2023-12-04 01:13:05 26 4
gpt4 key购买 nike

我正在使用快速入门示例中的 Spring Social 和 Thymeleaf 进行开发,但我意识到每个 Controller 只支持一个 Facebook 对象。这意味着示例无法为多个用户提供支持,我猜它与变量的@Scope 有关。它在 Spring 引导容器中运行,我想知道如何配置它以便每个 session 都有自己的 Facebook 对象。

最佳答案

正如您所建议的,Facebook 对象应该配置请求范围。如果您使用的是配置支持和/或 Spring Boot,那么它将在请求范围内。因此,即使 Controller 被 Facebook 实例注入(inject)一次,该实例实际上是一个代理,它将委托(delegate)给一个真实的 FacebookTemplate 实例,该实例是在请求时为经过身份验证的用户创建的。

我只能假设您指的是位于 http://spring.io/guides/gs/accessing-facebook/ 的入门指南示例.在这种情况下,它使用 Spring Social 可能的最简单的 Spring Boot 自动配置,其中包括 UserIdSource 的基本(但不用于生产)实现,它始终返回“匿名”作为用户 ID。因此,在您创建第一个 Facebook 连接后,第二个浏览器会尝试查找“匿名”连接,找到它并为您提供授权的 Facebook 对象。

这可能看起来很奇怪,但它一个旨在帮助您入门的示例应用程序……它确实做到了。要获得真正的 UserIdSource,您需要做的就是将 Spring Security 添加到项目中。这将告诉 Spring Social 自动配置配置一个从安全上下文中获取当前用户 ID 的 UserIdSource。这反射(reflect)了 Spring Social 更真实的使用,尽管显然涉及更多并且超出了入门指南的范围。

但是你可以看看https://github.com/spring-projects/spring-social-samples/tree/master/spring-social-showcase-boot有关 Spring Boot 中 Spring Social 的更完整示例。

关于spring-mvc - Spring 社交 Facebook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26862956/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com