我不想让你回到教程的世界,但我发现快速入门很有用。您的部分困惑听起来与您如何可视化流程有关:
我想要的是我的控制器应该连接到linkedin登录页面,然后用户将输入详细信息。
这不是他们描述控制器职责的方式。您需要简单地使用 API 绑定并做任何您需要做的工作。那时,您已经让他们登录了 LinkedIn。
来自:Spring Social 快速入门 - 第 4 步调用 API
@Controller
public class HomeController {
private final Facebook facebook;
@Inject
public HomeController(Facebook facebook) {
this.facebook = facebook;
}
@RequestMapping(value="/", method=RequestMethod.GET)
public String home(Model model) {
List<Reference> friends = facebook.friendOperations().getFriends();
model.addAttribute("friends", friends);
return "home";
}
}
处理与 LinkedIn 的连接是 Spring Social 的工作,他们使用ProviderSignInController进行处理(请参阅步骤2 - 配置 Spring Social和3 - 创建快速入门的视图)。
添加一个 ProviderSignInController 允许用户使用他们的提供者帐户登录:
@Bean
public ProviderSignInController providerSignInController() {
return new ProviderSignInController(connectionFactoryLocator(), usersConnectionRepository(), new SimpleSignInAdapter());
}
创建一个“登录”视图,允许用户使用他们的提供者帐户登录:
<%@ page session="false" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<form action="<c:url value="/signin/facebook" />" method="POST">
<button type="submit">Sign in with Facebook</button>
</form>
ProviderSignInController
他们创建将自身映射到/signin/{providerId}
视图然后允许用户访问的请求。
我再强调一遍:查看快速入门。它几乎完全按照您所描述的方式建模:一个社交登录,完成后重定向到显示用户 Facebook 好友的欢迎页面。