2020-09-25 02:35发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我们正在使用Hybris 6.2,必须向用户提供Facebook或Google的登录选项。
由于登录身份验证是由Facebook或Google处理的,我们如何处理身份验证? 由于在Hybris中进行身份验证需要用户名和密码,因此我们如何授权通过这两种方法之一登录的用户?
我们正在生成一个新的客户模型并将其保存,但是我们知道该客户中不会存储凭据,但是需要使用凭据来对Hybris中的用户进行身份验证。
我们如何处理这种情况?
你好,奥古斯丁,
希望我已经在店面实现了两种登录功能,所以我可以回答您的问题
一旦由google和facebook进行身份验证,它们就会向我们提供客户的名字,姓氏和电子邮件ID。 获取此信息后,您可以将其作为自己的客户群(SocialUser或其他)以客户身份注册为hybris。 但是,我无法给出完整的代码,只是给您一个提示,可能会对您有所帮助。 请看下面的方法来获得想法。
private void autoLoginForCustomer(最终UserModel hybrisUser,最终HttpServletRequest请求, 最终HttpServletResponse响应) { 最后的de.hybris.platform.jalo.user.User sessionUser = JaloSession.getCurrentSession()。getUserManager() .getUserByLogin(hybrisUser.getUid()); final String cusomerRole =" ROLE_" + GoogleaddonWebConstants.Permission.CUSTOMER_USERGROUP.toUpperCase(); JaloSession.getCurrentSession()。setUser(sessionUser); userService.setCurrentUser(hybrisUser); final UsernamePasswordAuthenticationToken authenticationToken =新的UsernamePasswordAuthenticationToken(hybrisUser.getUid(), " auth",Arrays.asList(new SimpleGrantedAuthority(cusomerRole))); SecurityContextHolder.getContext()。setAuthentication(authenticationToken); getCustomerFacade()。loginSuccess(); getGuidCookieStrategy()。setCookie(request,response); } 私人GoogleUser getGoogleUserInfo(GoogleIdToken.Payload payLoad) { final GoogleUser googleUser =新的GoogleUser(); 最终字符串userId = payLoad.getSubject(); System.out.println(" User ID:" + userId); //从有效负载中获取配置文件信息 最终字符串电子邮件= payLoad.getEmail(); 最终的字符串名称=(String)payLoad.get(" name"); final String familyName =(String)payLoad.get(" family_name"); 最终字符串namedName =(String)payLoad.get(" given_name"); //使用或存储个人资料信息 //... googleUser.setId(userId); googleUser.setFirstName(givenName); googleUser.setLastName(familyName); googleUser.setEmail(email); 返回googleUser; }
感谢您的回答,您已向我们提供了解决方法的意见,我们将尝试解决方案并告诉您其效果。
最多设置5个标签!
你好,奥古斯丁,
希望我已经在店面实现了两种登录功能,所以我可以回答您的问题
一旦由google和facebook进行身份验证,它们就会向我们提供客户的名字,姓氏和电子邮件ID。 获取此信息后,您可以将其作为自己的客户群(SocialUser或其他)以客户身份注册为hybris。 但是,我无法给出完整的代码,只是给您一个提示,可能会对您有所帮助。 请看下面的方法来获得想法。
感谢您的回答,您已向我们提供了解决方法的意见,我们将尝试解决方案并告诉您其效果。
一周热门 更多>