api/src/Topxia/Api/Util/UserUtil.php
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace Topxia\Api\Util;
use Biz\System\Service\SettingService;
use Topxia\Service\Common\ServiceKernel;
use Symfony\Component\HttpFoundation\File\File;
class UserUtil
{
public function generateUser($type, $token, $oauthUser, $setData)
{
$registration = array();
$randString = base_convert(sha1(uniqid(mt_rand(), true)), 16, 36);
$oauthUser['name'] = preg_replace('/[^\x{4e00}-\x{9fa5}a-zA-z0-9_.]+/u', '', $oauthUser['name']);
$oauthUser['name'] = str_replace(array('-'), array('_'), $oauthUser['name']);
if (empty($oauthUser['name'])) {
$oauthUser['name'] = "{$type}".substr($randString, 9, 3);
}
$nameLength = mb_strlen($oauthUser['name'], 'utf-8');
if ($nameLength > 10) {
$oauthUser['name'] = mb_substr($oauthUser['name'], 0, 11, 'utf-8');
}
if (!empty($setData['nickname']) && !empty($setData['email'])) {
$registration['nickname'] = $setData['nickname'];
$registration['email'] = $setData['email'];
} else {
$nicknames = array();
if (mb_strlen($oauthUser['name'], 'utf-8') < 4) {
$oauthUser['name'] .= substr($randString, 0, 3);
}
$nicknames[] = $oauthUser['name'];
$nicknames[] = mb_substr($oauthUser['name'], 0, 8, 'utf-8').substr($randString, 0, 3);
$nicknames[] = mb_substr($oauthUser['name'], 0, 8, 'utf-8').substr($randString, 3, 3);
$nicknames[] = mb_substr($oauthUser['name'], 0, 8, 'utf-8').substr($randString, 6, 3);
foreach ($nicknames as $name) {
if (ServiceKernel::instance()->createService('User:UserService')->isNicknameAvaliable($name)) {
$registration['nickname'] = $name;
break;
}
}
if (empty($registration['nickname'])) {
return null;
}
$registration['email'] = 'u_'.substr($randString, 0, 12).'@edusoho.net';
}
$registration['password'] = substr(base_convert(sha1(uniqid(mt_rand(), true)), 16, 36), 0, 8);
$registration['token'] = $token;
$registration['createdIp'] = $oauthUser['createdIp'];
$registration['type'] = $type;
$registration['authid'] = $oauthUser['id'];
if ('email_or_mobile' == $this->getSettingService()->get('auth.register_mode', 'email')) {
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。