package cn.mb.cloud.auth.security.social.handler; import cn.mb.cloud.auth.security.entity.User; import cn.mb.cloud.auth.security.service.IUserService; import cn.mb.cloud.auth.security.util.AppleUtil; import cn.mb.cloud.common.api.vo.UserVO; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; /** * @author jason * @date 2018/11/18 */ @Slf4j @Component("APPLE") @AllArgsConstructor public class AppleLoginHandler extends AbstractLoginHandler { private final IUserService userService; /** * 苹果登录传入identityToken *
*
* @param identityToken
* @return
*/
@Override
public String identify(String identityToken) {
String email = null;
if (!StringUtils.isEmpty(identityToken)) {
JSONObject json = null;
try {
System.out.println("identityToken:" + identityToken);
//验证identityToken
if (!AppleUtil.verify(identityToken)) {
return null;
}
//对identityToken解码
json = AppleUtil.parserIdentityToken(identityToken);
if (json == null) {
return null;
}
System.out.println(json.toString());
} catch (Exception e) {
e.printStackTrace();
}
email = json.getString("email");
}
return email;
}
/**
* openId 获取用户信息
*
* @param openId
* @return
*/
@Override
public UserVO info(String openId, String threeAvatar, String threeName) {
User user = userService.getOne(Wrappers.