帐号管理

开发者可直接使用AbleCloud平台帐号服务管理用户,也可以将已有帐号系统或其它平台(如QQ、微博等)用户对接至AbleCloud平台。AbleCloud平台将开发者自有帐号系统或来自其它平台的用户统一视为来自第三方平台的用户。

用户注册

直接注册用户

可以使用电子邮箱或手机号直接注册用户。

// PHP
// 实例化ACAccountMgr对象
$accountMgr = ACClient::getAccountMgr();
// 给用户发送注册验证码
// 参数$account为字符串,是用户的电子邮箱或手机号,也是用户注册后的登录帐号。
// 参数$template是拟采用的消息模板的编号。
// 参数$timeout是验证码的有效时长。单位为秒。
$accountMgr->sendVerifyCode($account, $template, $timeout);
// 注册帐号
// 参数$name是用户的昵称;
// 参数$email和$phone分别指用户的电子邮件及手机号。这两个参数至少需指定一个,以作为用户的登录名。两者俱备时任意一个都可用作登录名;
// 参数$password是登录密码;
// 参数$verifyCode是验证码;
// 参数$enableTokenExpiration指示是否启用Token自动过期机制。
$user = $accountMgr->register($name, $email, $phone, $password, $verifyCode, $enableTokenExpiration);

注:向用户发送手机或邮箱验证码时,要求开发者在AbleCloud平台已经配置了对应的消息模板等参数。此外,对于向同一用户发送手机短信息有频次限制。

第三方平台用户注册

来自第三方平台的用户使用其OpenID及平台标识符注册帐号。如微信平台的标识符可为"weixin"。如果是开发者自有的帐号系统,则推荐使用开发者在AbleCloud平台上的主域名作为平台的标识符,用户的OpenID可以使用其在原系统中的ID等能唯一标识其身份的值。

// PHP
// 实例化ACAccountMgr对象
$accountMgr = ACClient::getAccountMgr();
// 注册帐号
// 参数$openId是用户在第三方平台的标识附;
// 参数$provider是第三方平台的标识符,标识帐号的来源;
// 参数$unionId是可选参数。针对微信用户,该参数可以用来识别因关注不同公众号而具有不同OpenID的同一用户;
// 参数$enableTokenExpiration指示是否启用Token自动过期机制。
$user = $accountMgr->registerByOpenId($openId, $provider, $unionId, $enableTokenExpiration);

用户登录

直接注册的用户使用帐号密码登录,第三方平台用户则使用OpenID登录。

帐号密码登录

// PHP
// 实例化ACAccountMgr对象
$accountMgr = ACClient::getAccountMgr();
// 使用帐号密码登录
$user = $accountMgr->login($account, $password, $enableTokenExpiration);

第三方平台用户登录

// PHP
// 实例化ACAccountMgr对象
$accountMgr = ACClient::getAccountMgr();
// 使用OpenID登录
// 参数$openId是用户在第三方平台的标识附;
// 参数$provider是第三方平台的标识符,标识帐号的来源;
// 参数$unionId是可选参数。针对微信用户,该参数可以用来识别因关注不同公众号而具有不同OpenID的同一用户;
// 参数$enableTokenExpiration指示是否启用Token自动过期机制。
$user = $accountMgr->getUserByOpenId($openId, $provider, $unionId, $enableTokenExpiration);

绑定手机号

针对第三方平台用户,AbleCloud只能自动获取其OpenID信息,用户的其它信息需要开发者或用户额外提供。如为安全起见,可以验证并绑定用户的手机。

向用户的手机发送验证码

// PHP
// 获取账号管理对象
$accountMgr = ACClient::getAccountMgr();
// 发送验证码
// 参数$phone为字符串,是用户的手机号。
// 参数$template是拟采用的短信模板的编号。
// 参数$timeout是验证码的有效时长。单位为秒。
$accountMgr->sendVerifyCode($phone, $template, $timeout);

注:向用户发送手机验证码时,要求开发者在AbleCloud平台已经配置了手机短信息模板等参数,并且对于向同一用户发送手机短信息有频次限制。

根据验证码绑定用户的手机

// PHP
$accountMgr = ACClient::getAccountMgr();
// 获取用户对象
// 修改用户手机号
// 来自第三方平台的用户在AbleCloud帐号服务中没有密码,参数$password可以使用空字符串。
$accountMgr->changePhone($user, $phone, $verifyCode, $password);

用户帐号的附加属性

设置用户帐号的附加属性

设置帐号的附加属性之前,应通过开发者管理控制台定义帐号的附加属性列。

// PHP
// 实例化ACAccountMgr对象
$accountMgr = ACClient::getAccountMgr();
// 设置帐号的附加属性。附加属性以键值对组成的关联数组保存,记为$profile。
$accountMgr->setUserProfile($user, $profile);

获取用户帐号的附加属性

// PHP
// 实例化ACAccountMgr对象
$accountMgr = ACClient::getAccountMgr();
// 获取用户的附加属性
$keyValues = $accountMgr->getUserProfile($user);

获取用户的OpenID

已知用户在AbleCloud平台上的ID的条件下,可以获取用户来自第三方平台的OpenID。

// PHP
// 实例化ACAccountMgr对象
$accountMgr = ACClient::getAccountMgr();
// 获取用户的OpenID。参数$userId是用户在AbleCloud平台上的ID;
// 参数$provider是第三方平台的标识符。如'weixin'用于标记第三方用户来自微信平台。
$openId = $accountMgr->getUserOpenId($userId, $provider);