编程语言
首页 > 编程语言> > java-在Spring-Social中了解SignInAdapter

java-在Spring-Social中了解SignInAdapter

作者:互联网

大家好,我读了很多有关Spring-Social的文章,我有一个问题. SignInAdapter的signIn方法中使用此ID的参数“ userLocalId”是什么?我通过以注册形式获取信息来通过facebook注册用户.在此之后,我希望他按下signIn_button(facebook signIn)并可以访问我的网站.

我应该做这样的事情吗:在SignInAdapter中,我获得了与Facebook的连接,并将其社交信息与我的users表中的字段进行比较?

解决方法:

春季社会融合包括三个部分.

>注册
在注册中,根据提供者提供的信息创建本地用户
>连接
在连接中,我们将本地用户映射到openID用户
>登录
登录时,我们允许经过openId身份验证的用户登录到我们的应用程序

登入
在登录时,SigninAdapter用于加载本地用户,以便Spring Security层可以使用它.在这里,localUserId参数将指向我们应用程序中用户的ID.因此,在适配器中,我们需要将该用户加载为org.springframework.security.core.userdetails.User并将其设置为SecurityContext.

例如:

LocalUser lu = getLocalUser(localUserId); // Load the local user from database
User user = new User(lu.username, lu.password, lu.authorities)
UsernamePasswordAuthenticationToken result = new UsernamePasswordAuthenticationToken(user, user.getPassword(), user.getAuthorities());
SecurityContextHolder.getContext().setAuthentication(result);

连接
Spring Social Providers提供一个org.springframework.social.connect.web.ConnectController,它将帮助我们将本地用户链接到openId用户.
它要求您将POST请求发送到/ connect /< provider&gt ;,这会将用户重定向到提供者的登录页面,用户必须在该页面上对应用程序进行身份验证.

标签:spring-social,signing,java
来源: https://codeday.me/bug/20191201/2078591.html