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> ;,这会将用户重定向到提供者的登录页面,用户必须在该页面上对应用程序进行身份验证.
标签:spring-social,signing,java 来源: https://codeday.me/bug/20191201/2078591.html