登录时区分注册用户和访客
Difference registered user from guest on login
我正在使用 Unity3D 和 SmartFoxServer 开发一款多人游戏。
我希望玩家可以注册(我正在使用来自 SmartFoxServer 的注册帮助),这样他们就可以登录游戏。而且,他们可以作为客串玩家玩。
我在管理员中启用了此功能,但是当我在客户端中发出登录请求时,如果用户不存在(或密码错误),我将以访客身份登录。
我需要一个用于注册用户登录的命令和一个用于访客玩家登录的命令,或者告诉 SmartFoxServer 区分注册用户登录和访客登录的方法。有一些内置的解决方案吗?
这是一种方法。
为登录事件实现自定义处理程序
//Inside your main extension
addEventHandler(SFSEventType.USER_LOGIN, UserLoginEventHandler.class);
public class UserLoginEventHandler extends BaseServerEventHandler{
@Override
public void handleServerEvent(ISFSEvent event) throws SFSException {
String loginName = (String) event.getParameter(SFSEventParam.LOGIN_NAME);
//send a blank username as login for guest, smartfox will create a guest user for you
if(loginName.isEmpty(''))
return
//Authenticate your registered user here
if(...isNot Authenticated..)
{
SFSErrorData errData = new SFSErrorData(SFSErrorCode.LOGIN_BAD_USERNAME);
errData.addParameter(loginName);
// Fire a Login exception
throw new SFSLoginException("UserName/password not correct", errData);
}
}
}
我正在使用 Unity3D 和 SmartFoxServer 开发一款多人游戏。
我希望玩家可以注册(我正在使用来自 SmartFoxServer 的注册帮助),这样他们就可以登录游戏。而且,他们可以作为客串玩家玩。
我在管理员中启用了此功能,但是当我在客户端中发出登录请求时,如果用户不存在(或密码错误),我将以访客身份登录。
我需要一个用于注册用户登录的命令和一个用于访客玩家登录的命令,或者告诉 SmartFoxServer 区分注册用户登录和访客登录的方法。有一些内置的解决方案吗?
这是一种方法。
为登录事件实现自定义处理程序
//Inside your main extension
addEventHandler(SFSEventType.USER_LOGIN, UserLoginEventHandler.class);
public class UserLoginEventHandler extends BaseServerEventHandler{
@Override
public void handleServerEvent(ISFSEvent event) throws SFSException {
String loginName = (String) event.getParameter(SFSEventParam.LOGIN_NAME);
//send a blank username as login for guest, smartfox will create a guest user for you
if(loginName.isEmpty(''))
return
//Authenticate your registered user here
if(...isNot Authenticated..)
{
SFSErrorData errData = new SFSErrorData(SFSErrorCode.LOGIN_BAD_USERNAME);
errData.addParameter(loginName);
// Fire a Login exception
throw new SFSLoginException("UserName/password not correct", errData);
}
}
}