登录¶
只有登录 Juphoon Cloud Platform 平台才能进行平台上的各种业务操作。
本页介绍各开发平台的登录集成。
在使用 Juphoon Cloud Platform 服务之前,您需要选择使用一种登录模式用于集成。关于登录模式的详细信息请参阅 登录模式说明 。
iOS 登录¶
完成 SDK 的初始化后即可进行登录集成。
登录涉及 JCClient 类及其回调 JCClientCallback 类,其主要作用是负责登录、登出管理及帐号信息存储。
登录之前,可以进行登录的相关设置,如是否使用代理服务器登录以及服务器地址的设置,方法如下
/**
* @brief 设置配置相关参数
* JCClientConfigServer, JCClientConfigHttpsProxy 均需要在 login 之前调用
* @param key 参数关键字, 参见 JCClientConstants 中定义
* @param value 参数值
* @return 返回 true 表示设置成功,false 表示设置失败
*/
-(bool)setConfig:(NSString*)key value:(NSString*)value;
设置登录相关参数后,可以调用下面的方法获取相关的配置
/**
* @brief 获取配置相关参数
* @param key 参数关键字, 参见 JCClientConstants 中定义
* @return 成功返回字符串类型具体值, 失败返回 NULL
*/
-(NSString*)getConfig:(NSString*)key;
登录参数设置之后,即可调用 login 接口发起登录操作:
/**
* @brief 登录
* @param userId 用户名
* @param password 密码,免鉴权模式密码可以随意输入,但不能为空
* @return 返回 true 表示正常执行调用流程,false 表示调用异常,异常错误通过 JCClientCallback 通知
* @warning 目前只支持免鉴权模式,免鉴权模式下当账号不存在时会自动去创建该账号
* @warning 用户名为英文、数字和'+' '-' '_' '.',长度不要超过64字符,'-' '_' '.'不能作为第一个字符
*/
-(bool)login:(NSString*)userId password:(NSString*)password;
代码示例如下:
// 创建 JCClient 实例
JCClient *client = [JCClient create:@"your appkey" callBack:callback extraParams:nil];
// 登录
[client login:@"userId" password:@"your password"];
...
登录的结果通过 onlogin 接口监听回调:
/**
* @brief 登录结果回调
* @param result true 表示登录成功,false 表示登录失败
* @param reason 当 result 为 false 时该值有效
* @see JCClientReason
*/
-(void)onLogin:(bool)result reason:(JCClientReason)reason;
其中,JCClientReason 有
/// 正常
JCClientReasonNone,
/// sdk 未初始化
JCClientReasonSDKNotInit,
/// 无效的参数
JCClientReasonInvalidParam,
/// 函数调用失败
JCClientReasonCallFunctionError,
/// 当前状态无法再次登录
JCClientReasonStateCannotLogin,
/// 超时
JCClientReasonTimeOut,
/// 网络异常
JCClientReasonNetWork,
/// appkey 错误
JCClientReasonAppKey,
/// 账号密码错误
JCClientReasonAuth,
/// 无该用户
JCClientReasonNoUser,
/// 被强制登出
JCClientReasonServerLogout,
/// 其他错误
JCClientReasonOther,
登录成功返回 true,false 返回失败。
登录成功之后,SDK 会自动保持与服务器的连接状态,直到用户主动调用登出接口,或者因为帐号在其他设备登录导致该设备登出。帐号体系是共享的,同一个用户名只能同时登录在一台设备上。后一个登录的设备登录成功之后,将会把前一个设备踢下线。
登出
如果您登出 Juphoon Cloud Platform 平台,则不能进行平台上的各种业务操作。
登出调用方法:
/**
* 登出 Juphoon Cloud 平台,登出后不能进行平台上的各种业务
* @return 返回 true 表示正常执行调用流程,false 表示调用异常,异常错误通过 JCClientCallback 通知
*/
-(bool)logout;
登出结果通过 onlogout 接口监听回调:
/**
* @brief 登出回调
* @param reason 登出原因
* @see JCClientReason
*/
-(void)onLogout:(JCClientReason)reason;
当登录状态发生改变时,会收到 onClientStateChange 回调:
/**
* @brief 登录状态变化通知
* @param state 当前状态值
* @param oldState 之前状态值
*/
-(void)onClientStateChange:(JCClientState)state oldState:(JCClientState)oldState;
示例代码:
-(void)onClientStateChange:(JCClientState)state oldState:(JCClientState)oldState
{
if (state == JCClientStateIdle) { // 未登录
...
} else if (state == JCClientStateLogining) { // 登录中
...
} else if (state == JCClientStateLogined) { // 登录成功
...
} else if (state == JCClientStateLogouting) { // 登出中
...
}
}
JCClientState 通常有:
// 未初始化
JCClientStateNotInit,
// 未登录
JCClientStateIdle,
// 登录中
JCClientStateLogining,
// 登录成功
JCClientStateLogined,
// 登出中
JCClientStateLogouting,
集成登录后,即可进行相关业务的集成。
SDK 支持前后台模式,可以在应用进入前台或者后台时调用 JCClient 类中的 setForeground 方法进行设置
/**
* @brief 设置是否是前台,当应用进入前台标志为true,进入后台标志为false
* @param foreground true 是前台,false 是后台
*/
-(void)setForeground:(bool)foreground;
Android 登录¶
登录涉及 JCClient 类,其主要作用是负责登录、登出管理及帐号信息存储。
登录之前,可以进行登录的相关设置,如是否使用代理服务器登录以及服务器地址的设置,方法如下
/**
* 设置配置相关参数<br>
* CONFIG_KEY_SERVER_ADDRESS, CONFIG_KEY_HTTPS_PROXY 均需要在 login 之前调用<br>
*
* @param key 参数关键字
* @param value 参数值
* @return 返回 true 表示设置成功,false 表示设置失败
* @see JCClient.ConfigKey
*/
public abstract boolean setConfig(@ConfigKey String key, String value);
设置登录相关参数后,可以调用下面的方法获取相关的配置
/**
* 获取配置相关参数
*
* @param key 参数关键字
* @return 成功返回字符串类型具体值, 失败返回 NULL
* @see JCClient.ConfigKey
*/
public abstract String getConfig(@ConfigKey String key);
登录参数设置之后,即可调用 login 接口发起登录操作:
/**
* 登录 Juphoon Cloud 平台,只有登陆成功后才能进行平台上的各种业务
* 登录结果通过 JCCallCallback 通知<br>
* 注意:用户名为英文数字和'+' '-' '_' '.',长度不要超过64字符,'-' '_' '.'不能作为第一个字符
*
* @param userId 用户名
* @param password 密码,但不能为空
* @return 返回 true 表示正常执行调用流程,false 表示调用异常,异常错误通过 JCClientCallback 通知
*/
public abstract boolean login(String userId, String password);
示例代码:
JCClient client = JCClient.create(Context, "your appkey", this, null);
client.login(userI, password);
登录操作执行之后,登录的结果通过 onLogin 接口监听回调:
/**
* 登录结果回调
*
* @param result true 表示登陆成功,false 表示登陆失败
* @param reason 当 result 为 false 时该值有效
*/
void onLogin(boolean result, @JCClient.ClientReason int reason);
登录成功之后,SDK 会自动保持与服务器的连接状态,直到用户主动调用登出接口,或者因为帐号在其他设备登录导致该设备登出。现有帐号体系中一个用户名只能同时登录在一台设备上。后一个登录的设备登录成功之后,将会把前一个设备踢下线。
登出
如果您登出 Juphoon Cloud Platform 平台,则不能进行平台上的各种业务操作。
return 返回 true 表示正常执行调用流程,false 表示调用异常。
登出通过下面方法实现:
/**
* 登出 Juphoon Cloud 平台,登出后不能进行平台上的各种业务
*
* @return 返回 true 表示正常执行调用流程,false 表示调用异常,异常错误通过 JCClientCallback 通知
*/
public abstract boolean logout();
登出结果通过 onLogout 接口监听回调:
/**
* 登出回调
*
* @param reason 登出原因
*/
void onLogout(@JCClient.ClientReason int reason);
ClientReason 通常有:
// 正常
public static final int REASON_NONE = 0;
// sdk 未初始化
public static final int REASON_SDK_NOT_INIT = 1;
// 无效参数
public static final int REASON_INVALID_PARAM = 2;
// 函数调用失败
public static final int REASON_CALL_FUNCTION_ERROR = 3;
// 当前状态无法再次登录
public static final int REASON_STATE_CANNOT_LOGIN = 4;
// 超时
public static final int REASON_TIMEOUT = 5;
// 网络异常
public static final int REASON_NETWORK = 6;
// appkey 错误
public static final int REASON_APPKEY = 7;
// 账号密码错误
public static final int REASON_AUTH = 8;
// 无该用户
public static final int REASON_NOUSER = 9;
// 其他错误
public static final int REASON_OTHER = 100;
当登录状态发生改变时,会收到 onClientStateChange 回调:
/**
* 登录状态变化通知
*
* @param state 当前状态值
* @param oldState 之前状态值
*/
void onClientStateChange(@JCClient.ClientState int state, @JCClient.ClientState int oldState);
示例代码:
public void onClientStateChange(@JCClient.ClientState int state, @JCClient.ClientState int oldState) {
if (state == JCClient.STATE_IDLE) { // 未登录
...
} else if (state == JCClient.STATE_LOGINING) { // 正在登录
...
} else if (state == JCClient.STATE_LOGINED) { // 登录成功
...
} else if (state == JCClient.STATE_LOGOUTING) { // 登出中
...
}
}
ClientState 通常有:
// 未初始化
public static final int STATE_NOT_INIT = 0;
// 未登录
public static final int STATE_IDLE = 1;
// 登录中
public static final int STATE_LOGINING = 2;
// 登录成功
public static final int STATE_LOGINED = 3;
// 登出中
public static final int STATE_LOGOUTING = 4;
集成登录后,即可进行相关业务的集成。
SDK 支持前后台模式,可以在应用进入前台或者后台时调用 JCClient 类中的 setForeground 方法进行设置
/**
* 设置是否为前台, 在有控制后台网络的手机上当进入前台时主动触发
*
* @param foreground 是否为前台
*/
public abstract void setForeground(boolean foreground);
Windows 登录¶
登录涉及 JCClient 类,其主要作用是负责登录、登出管理及帐号信息存储。
登录之前,可以进行登录的相关设置,如是否使用代理服务器登录以及服务器地址的设置,方法如下
/// <summary>
/// 设置登录相关属性
/// </summary>
/// <param name="key">设置的属性key值</param>
/// <param name="value">设置的属性对应值</param>
/// <returns>返回 ture 表示设置成功,false设置失败</returns>
public bool setConfig(string key, string value)
设置登录相关参数后,可以调用下面的方法获取相关的配置
/// <summary>
/// 获取设置属性的值
/// </summary>
/// <param name="key">需要获取的属性key值</param>
/// <returns>需要获取的属性值</returns>
public string getConfig(string key)
登录参数设置之后,即可调用 login 接口发起登录操作:
/// <summary>
/// 登录 Juphoon Cloud 平台,只有登录成功后才能进行平台上的各种业务
/// 登录结果通过 JCCallCallback 通知
/// <param name="username">用户标识</param>
/// <param name="password">密码,如果设置为免鉴权则可以填任意字符串</param>
/// <returns>true 表示正常执行调用流程,false 表示调用异常</returns>
/// <remarks>注意:用户名为英文数字和'+' '-' '_' '.',长度不要超过64字符,'-' '_' '.'不能作为第一个字符</remarks>
/// <remarks>当用户不存在时会自动创建该用户</remarks>
public bool login(string username, string password)
结果返回 true 表示正常执行调用流程,false 表示调用异常。
示例代码:
JCClient client = JCClient.create(app, "your appkey", this, null);
client.login(userId, password);
登录的结果通过 onLogin 接口监听回调:
/// <summary>
/// 登录结果回调
/// </summary>
/// <param name="result">true 表示登录成功,false 表示登录失败</param>
/// <param name="reason">当 result 为 false 时该值有效,了解具体原因</param>
void onLogin(bool result, JCClientReason reason);
登录成功之后,SDK 会自动保持与服务器的连接状态,直到用户主动调用登出接口,或者因为帐号在其他设备登录导致该设备登出。现有帐号体系中一个用户名只能同时登录在一台设备上。后一个登录的设备登录成功之后,将会把前一个设备踢下线。
登出
如果您登出 Juphoon Cloud Platform 平台,则不能进行平台上的各种业务操作。
登出通过下面方法实现:
/// <summary>
/// 登出 Juphoon Cloud 平台
/// </summary>
/// <returns>返回 true 表示正常执行调用流程,false 表示调用异常,异常错误通过 JCClientCallback 通知</returns>
public bool logout();
登出结果通过 onLogout 接口监听回调:
/// <summary>
/// 登出回调
/// </summary>
/// <param name="reason">登出原因</param>
void onLogout(JCClientReason reason);
JCClientReason 通常有:
// 正常
None,
// sdk 未初始化
SDKNotInit,
// 无效参数
InvalidParam,
// 函数调用失败
CallFucntionError,
// 当前状态无法再次登录
StateCannotLogin,
// 超时
TimeOut,
// 网络异常
NetWork,
// appkey 错误
AppKey,
// 账号密码错误
Auth,
// 无该用户
NoUser,
// 其他错误
Other = 100
当登录状态发生改变时,会收到 onClientStateChange 回调:
/// <summary>
/// 登录状态变化通知
/// </summary>
/// <param name="state">当前状态值</param>
/// <param name="oldState">之前状态值</param>
void onClientStateChange(JCClientState state, JCClientState oldState);
示例代码:
private void onClientStateChange(JCClientState state, JCClientState oldState)
{
if (state == JCClientState.Idle) { // 未登录
...
}
else if (state == JCClientState.Logining) { // 登录中
...
}
else if (state == JCClientState.Logined) { // 登录成功
...
}
else if (state == JCClientState.Logouting) { // 登出中
...
}
}
JCClientState 通常有:
// 未初始化
NotInit,
// 未登录
Idle,
// 登录中
Logining,
// 登录成功
Logined,
// 登出中
Logouting,
集成登录后,即可进行相关业务的集成。