登录时区分注册用户和访客

Posted

技术标签:

【中文标题】登录时区分注册用户和访客【英文标题】:Difference registered user from guest on login 【发布时间】:2016-06-12 01:04:15 【问题描述】:

我正在使用 Unity3D 和 SmartFoxServer 开发多人游戏。

我希望玩家可以注册(我使用 SmartFoxServer 的注册帮助),以便他们可以登录游戏。而且,他们可以作为客座球员踢球。

我在管理员中启用了此功能,但是当我在客户端发出 LoginRequest 时,如果用户不存在(或密码错误),我将以访客身份登录。

我需要一个用于注册用户登录的命令和一个用于访客玩家登录的命令,或者一种告诉 SmartFoxServer 区分注册用户登录和访客登录的方法。有一些内置的解决方案吗?

【问题讨论】:

【参考方案1】:

这是一种方法。

为登录事件实现自定义处理程序

//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);



【讨论】:

以上是关于登录时区分注册用户和访客的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft Graph 登录审核日志 API:对于某些登录,内部用户显示为访客用户类型

Laravel Guest用户有额外登录

如果用户未登录,则在网页上显示“访客”

为以访客身份登录的用户从服务器下载文件

在护照登录中 req.logIn() 后获取空数组

PHP 确定Joomla用户是否为访客/未登录