0

如果用户对应用程序进行身份验证,我想访问linkedin 数据。我已经经历了几个例子,但我仍然无法理解我应该在控制器中为这个任务写什么。

我想要的是我的控制器应该连接到linkedin登录页面,然后用户将输入详细信息。在该应用程序将获取数据之后,该页面将重定向到另一个欢迎页面。

这是我的登录控制器。

@Controller
public class LoginController {
	
	@RequestMapping(value="/login", method = RequestMethod.GET)
	public ModelAndView welcome() {
		ModelAndView mav = new ModelAndView();
		mav.setViewName("loginPage");
		return mav;
	}
}

但是对于下面的控制器,我应该如何处理?

@Controller
public class LinkedInController {
	
	private LinkedIn linkedin;
	private ConnectionRepository connectionRepository;
	

}

提前致谢!!!

4

1 回答 1

0

我不想让你回到教程的世界,但我发现快速入门很有用。您的部分困惑听起来与您如何可视化流程有关:

我想要的是我的控制器应该连接到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 Social3 - 创建快速入门的视图)。

添加一个 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 好友的欢迎页面。

于 2017-07-13T14:28:26.753 回答