PHP 接入自己的用户体系
注意请把Java实现的两个接口全部注释
- com.pangugle.modules.im.aec.AuthAecSupportImpl
- com.pangugle.modules.im.aec.UserAecSupportImpl 以上两个接口 把 @Serevice 注释就可以了!
im 服务端接入
- 实现AuthAecSupport 接口
实现AuthAecSupport例子
@Service
public class HttpAuthAecSupportImpl implements AuthAecSupport{
@Override
public boolean verifyAccessToken(String accessToken) {
String url = "xxxxx/verifyAccessToken?accessToken=" + accessToken; // 地址自己定义
// 示例 : {"code": 200, "msg": "", data:true|false}
JSONObject obj = FetchDataHelper.loadData(url);
if(obj == null || obj.isEmpty())
{
return false;
}
boolean rs = obj.getBooleanValue("data");
return rs;
}
@Override
public String getAccountByAccessToken(String accessToken) {
String url = "xxxxx/getAccountByAccessToken?accessToken=" + accessToken; // 地址自己定义
// 示例 : {"code": 200, "msg": "success", data:"xxxxxxxxxxx"}
JSONObject obj = FetchDataHelper.loadData(url);
if(obj == null || obj.isEmpty())
{
return null;
}
String rs = obj.getString("data");
return rs;
}
}
- 实现 UserAecSupport 接口
示例
@Service
public class HttpUserAecSupportImpl implements UserAecSupport{
@Override
public MyUserInfo findUserInfo(String username) {
String url = "xxxxx/findUserInfo?username=" + username; // 地址自己定义
// 示例 : {"code": 200, "msg": "success", data:{}}
JSONObject obj = FetchDataHelper.loadData(url);
if(obj == null || obj.isEmpty())
{
return null;
}
JSONObject data = obj.getJSONObject("data");
String nickname = data.getString("nickname");
String avatar = data.getString("avatar"); // 用户头像, 注意是绝对路径
boolean enableStatus = data.getBooleanValue("enableStatus"); // 用户是否起用
MyUserInfo myUserInfo = new MyUserInfo(username, nickname, avatar);
myUserInfo.setEnableStatus(enableStatus);
return myUserInfo;
}
/**
* 拼接头像地址, 一定要,因为传递进来的头像是相对路径
*/
@Override
public String handleAvatar(String avatar) {
// UserInfo getAbsoluteAvatar 是官方的实现,客户需要自己实现
return UserInfo.getAbsoluteAvatar(avatar);
}
}
im 客户端接入
客户端接入就是要修改客户 UserApi 相关接口! 请对着用户相关Api进行相应的修改!