Search in sources :

Example 1 with AccessToken

use of com.fujieid.jap.oauth2.token.AccessToken in project ddd by EricFoxz.

the class ApplicationOauth2Service method createAndGetOauth2User.

/**
 * 创建并获取第三方用户,相当于第三方登录成功后,将授权关系保存到数据库
 * (开发者业务系统中 oauth2 user -> sys user 的绑定关系)
 *
 * @param platform  第三方平台标识
 * @param userInfo  第三方返回的用户信息
 * @param tokenInfo token 信息,可以强制转换为 com.fujieid.jap.oauth2.token.AccessToken
 * @return JapUser
 */
@Override
public JapUser createAndGetOauth2User(String platform, Map<String, Object> userInfo, Object tokenInfo) {
    // FIXME 业务端可以对 tokenInfo 进行保存或其他操作
    AccessToken accessToken = (AccessToken) tokenInfo;
    System.out.println(JsonUtil.toJsonString(accessToken));
    // FIXME 注意:此处仅作演示用,不同的 oauth 平台用户id都不一样,
    // 此处需要开发者自己分析第三方平台的用户信息,提取出用户的唯一ID
    String uid = (String) userInfo.get("userId");
    // 查询绑定关系,确定当前用户是否已经登录过业务系统
    JapUser japUser = this.getByPlatformAndUid(platform, uid);
    if (null == japUser) {
        // 保存用户
        SysUserEntity sysUserEntity = new SysUserEntity();
        sysUserService.register(sysUserEntity);
        japUser = new JapUser();
        japUser.setAdditional(userInfo);
    // userData.add(japUser);
    }
    return japUser;
}
Also used : JapUser(com.fujieid.jap.core.JapUser) SysUserEntity(gitee.com.ericfox.ddd.domain.sys.model.sys_user.SysUserEntity) AccessToken(com.fujieid.jap.oauth2.token.AccessToken)

Aggregations

JapUser (com.fujieid.jap.core.JapUser)1 AccessToken (com.fujieid.jap.oauth2.token.AccessToken)1 SysUserEntity (gitee.com.ericfox.ddd.domain.sys.model.sys_user.SysUserEntity)1