Java IM环信服务端集成之用户注册(三)

来源:互联网 发布:蝴蝶效应3 知乎 编辑:程序博客网 时间:2024/05/19 18:43
移动端用户注册 VS 环信IM用户注册

一、IM 用户管理

注册 IM 用户[单个]

URL 指定的 org 和 APP 中创建一个新的用户,分两种模式:开放注册和授权注册。
  • “开放注册”模式:注册环信账号时,不用携带管理员身份认证信息;
  • “授权注册”模式:注册环信账号时,必须携带管理员身份认证信息。推荐使用“授权注册”,这样可以防止某些已经获取了注册URL 和知晓注册流程的人恶意向服务器大量注册垃圾用户。
注意:以下API 中提到的 ${token} 是个变量,使用时需要替换成通过 APP 的 client_id 和 client_secret 获取到的 token。


1.1 开放注册部分




package com.xunxin.service.app;import java.util.ArrayList;import java.util.Date;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.xunxin.dao.app.AppUserDao;import com.xunxin.dao.sys.MessageDao;import com.xunxin.dao.sys.PlatformMutualityManagentDao;import com.xunxin.util.HttpUtils;import com.xunxin.util.HttpUtils.UHeader;import com.xunxin.util.app.IDGeneratorUtil;import com.xunxin.util.app.ValidationUtil;import com.xunxin.vo.app.exception.LoginExceptionConstant;import com.xunxin.vo.app.exception.RegisterExceptionConstant;import com.xunxin.vo.sys.PlatformMutualityManagent;import com.xunxin.vo.user.UserEntity;import com.xunxin.web.api.exception.LoginException;import com.xunxin.web.api.exception.RegisterException;/** * Copyright © 2017 noseparte(Libra) © Like the wind, like rain * @Author Noseparte * @Compile 2017年10月11日 -- 下午4:57:41 * @Version 1.0 * @Descriptionapp端的用户监管 */@Service("appUserService")public class AppUserService {private static final String LINKED_URL = "https://a1.easemob.com/";@Autowiredprivate AppUserDao appUserDao;@Autowiredprivate MessageDao messageDao;@Autowiredprivate PlatformMutualityManagentDao platformMutualityManagentDao;public boolean register(int platform_id, String phone, int verifyCode, String user_password) {//----------------------------//获取环信应用信息PlatformMutualityManagent pm = platformMutualityManagentDao.findOne(platform_id);String app_key = pm.getApp_key();String username = "xunxin" + "|" + phone;//环信 IDString password = "xunxin" + "|" + user_password;//用户密码String org_name = app_key.split("#")[0];//组织名称String app_name = app_key.split("#")[1];//APP名称//----------------------------//注册IM[单个]//post请求路径String register_url = LINKED_URL + org_name + "/" + app_name + "/" + "users";StringBuffer register_sb = new StringBuffer();register_sb.append("username=").append(username);register_sb.append("&password=").append(password);String register_argJson = register_sb.toString();//请求头信息List register_headerList = new ArrayList();register_headerList.add(new UHeader("Content-Type", "application/json"));String register_resp = HttpUtils.getPostResponse(register_url, register_argJson, register_headerList);//解析环信注册返回的JSONJSONObject register_obj = JSON.parseObject(register_resp);String applicationName = register_obj.getString("applicationName");if(applicationName.equals("followheart")) {System.out.println("环信注册成功");}//手机号输入有误if(!ValidationUtil.matchMobile(phone)) {throw new RegisterException(RegisterExceptionConstant.PHONE_NUMBER_IS_WRONG);}int isExist = appUserDao.findByPhone(phone);//用户已存在if(isExist == 0) {throw new RegisterException(RegisterExceptionConstant.LOGIN_NAME_IS_EXIST);}//手机号输入有误if(!ValidationUtil.matchPassWord(password)) {throw new RegisterException(RegisterExceptionConstant.PASSWORD_ERROR);}//验证码int code = messageDao.findLastOneByPhone(phone);if(verifyCode != code) {throw new RegisterException(RegisterExceptionConstant.VERIFY_CODE_ERROR);}//密码输入有误if(!ValidationUtil.matchPassWord(password)) {throw new RegisterException(RegisterExceptionConstant.PASSWORD_ERROR);}//一切正常,开始进入注册流程UserEntity entity = new UserEntity(phone, IDGeneratorUtil.createAppCode(), 0, password, new Date());appUserDao.save(entity); //TODO//大功告成return true;}



1.2 授权注册部分



  Github地址:https://github.com/noseparte 

       Email:noseparte@aliyun.com     有java与hadoop相关的技术问题,可以发私信与我交流。

       NPM地址:https://www.npmjs.com/~noseparte

       个人网站 : http://www.noseparte.com/   Copyright © 2017 noseparte

      

原创粉丝点击