hasOne(Roles::class, 'id', 'role_id'); } public function scopeActive(Builder $query) { return $query->where('is_delete', 0); } public static function random($length = 6, $type = 'string', $convert = 0) { $config = array( 'number' => '1234567890', 'letter' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 'string' => 'abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789', 'all' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' ); if (!isset($config[$type])) $type = 'string'; $string = $config[$type]; $code = ''; $strlen = strlen($string) - 1; for ($i = 0; $i < $length; $i++) { $code .= $string{mt_rand(0, $strlen)}; } if (!empty($convert)) { $code = ($convert > 0) ? strtoupper($code) : strtolower($code); } return $code; } /** * 验证sign * @param $userId * @param $ttl * @param $random * @param $sign * @return bool */ public static function validSign($userId,$ttl,$random,$sign){ $params = array('user_id'=>$userId, 'ttl'=> $ttl, 'random'=>$random); $makesign = self::getSignature($params); if($makesign == $sign) { return true; } return false; } public static function getSignature($params) { // 按数组键名 正序排序 ksort($params); $tem = array(); foreach ($params as $k => $v) { if ($k !== 'sign') { $tem[] = "$k=$v"; } } $sk = implode('&', $tem); return md5($sk); } /** * Get the name of the unique identifier for the user. * * @return string */ public function getAuthIdentifierName() { // TODO: Implement getAuthIdentifierName() method. } /** * Get the unique identifier for the user. * * @return mixed */ public function getAuthIdentifier() { // TODO: Implement getAuthIdentifier() method. return $this->id; } /** * Get the password for the user. * * @return string */ public function getAuthPassword() { // TODO: Implement getAuthPassword() method. } /** * Get the token value for the "remember me" session. * * @return string */ public function getRememberToken() { // TODO: Implement getRememberToken() method. } /** * Set the token value for the "remember me" session. * * @param string $value * @return void */ public function setRememberToken($value) { // TODO: Implement setRememberToken() method. } /** * Get the column name for the "remember me" token. * * @return string */ public function getRememberTokenName() { // TODO: Implement getRememberTokenName() method. } }