first commit
This commit is contained in:
467
pgserver/application/lib/AuthApi.php
Normal file
467
pgserver/application/lib/AuthApi.php
Normal file
@@ -0,0 +1,467 @@
|
||||
<?php
|
||||
|
||||
namespace app\lib;
|
||||
|
||||
|
||||
use app\util\ReturnCode;
|
||||
use think\facade\Env;
|
||||
use \Exception;
|
||||
|
||||
/**
|
||||
* 权限系统接口
|
||||
*/
|
||||
class AuthApi
|
||||
{
|
||||
//调用信息
|
||||
// const USERNAME = 'auth';
|
||||
const USERNAME = 'nce';
|
||||
// const PASSWORD = 'YlzXZbm4&5';
|
||||
const PASSWORD = 'NRXpT@HfvH';
|
||||
const GRANT_TYPE = 'refresh_token';
|
||||
|
||||
// 接口IP
|
||||
//const AUTH_URL = 'http://106.52.70.137:8080/';
|
||||
// const AUTH_URL = 'http://111.230.221.71:8001/';
|
||||
// const AUTH_URL = 'http://129.204.123.130:8001/'; // uat
|
||||
private $auth_url;
|
||||
//接口地址
|
||||
const API_TOKEN = 'auth/oauth/token'; //获取token接口/刷新token接口
|
||||
const API_TOKEN1 = 'oauth/token'; //获取token接口/刷新token接口
|
||||
const API_DEL_TOKEN = '/logout'; //注销token接口
|
||||
const API_USER_AUTH = 'auth/api/user/per'; //获取用户权限
|
||||
const API_USER_ROLE = 'auth/api/user/role'; //获取角色用户
|
||||
const API_USER_LIST = 'auth/api/user/list'; //获取用户列表
|
||||
const API_DEPART_ROLE = 'auth/api/user/depart/users'; //根据部门id获取用户信息
|
||||
const API_BUSINESS_DEPARTMENT = 'auth/api/user/depart'; //根据业务部id获取业务部下属所有分部信息
|
||||
const API_MANY_USER_ROLE = 'auth/api/user/roles'; //获取多角色用户
|
||||
const API_QR_CODE = 'auth/user/token'; // 扫码登录获取token接口
|
||||
const API_UPDATE_PWD = 'system/user/profile/updatePwd'; // 扫码登录获取token接口
|
||||
// const API_TOKEN = 'CLOUD-AUTH/oauth/token'; //获取token接口/刷新token接口
|
||||
// const API_TOKEN1 = 'oauth/token'; //获取token接口/刷新token接口
|
||||
// const API_DEL_TOKEN = 'CLOUD-AUTH/api/exit'; //注销token接口
|
||||
// const API_USER_AUTH = 'CLOUD-AUTH/api/user/per'; //获取用户权限
|
||||
// const API_USER_ROLE = 'CLOUD-AUTH/api/user/role'; //获取角色用户
|
||||
// const API_DEPART_ROLE = 'CLOUD-AUTH/api/user/depart/users'; //根据部门id获取用户信息
|
||||
// const API_BUSINESS_DEPARTMENT = 'CLOUD-AUTH/api/user/depart'; //根据业务部id获取业务部下属所有分部信息
|
||||
// const API_MANY_USER_ROLE = 'CLOUD-AUTH/api/user/roles'; //获取多角色用户
|
||||
// const API_QR_CODE = 'CLOUD-AUTH/user/token'; // 扫码登录获取token接口
|
||||
|
||||
public function __construct(){
|
||||
$this->auth_url = Env::get('auth.auth_url');
|
||||
}
|
||||
/**
|
||||
* GET 请求
|
||||
* @param string $url
|
||||
*/
|
||||
private function http_get($url,$param,$arr_header=array(),$id=''){
|
||||
$oCurl = curl_init();
|
||||
if (is_string($param)) {
|
||||
$strPOST = $param;
|
||||
} else {
|
||||
$aPOST = array();
|
||||
foreach ($param as $key => $val) {
|
||||
$aPOST[] = $key . "=" . $val;
|
||||
}
|
||||
$strPOST = join("&", $aPOST);
|
||||
}
|
||||
$url = $url."?".$strPOST;
|
||||
if (stripos($url, "https://") !== false) {
|
||||
curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false);
|
||||
curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1
|
||||
}
|
||||
curl_setopt($oCurl, CURLOPT_URL, $url);
|
||||
curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);
|
||||
if(!empty($arr_header)){
|
||||
$arr_header[] = "Content-Type: application/json; charset=utf-8";
|
||||
}
|
||||
curl_setopt($oCurl, CURLOPT_HTTPHEADER, $arr_header);
|
||||
|
||||
$sContent = curl_exec($oCurl);
|
||||
if (curl_errno($oCurl)){
|
||||
throw new Exception(curl_error($oCurl),0);
|
||||
}else{
|
||||
$httpStatusCode = curl_getinfo($oCurl, CURLINFO_HTTP_CODE);
|
||||
if (200 !== $httpStatusCode){
|
||||
|
||||
throw new Exception($arr_header[1],$httpStatusCode);
|
||||
}
|
||||
}
|
||||
curl_close($oCurl);
|
||||
return $sContent;
|
||||
}
|
||||
|
||||
/**
|
||||
* POST 请求
|
||||
* @param string $url
|
||||
* @param array $param
|
||||
* @param boolean $post_file 是否文件上传
|
||||
* @param boolean $time 超时时间,单位秒
|
||||
* @param boolean $id 爬虫日志表id
|
||||
* @param boolean $arr_header http请求头
|
||||
* @return string content
|
||||
*/
|
||||
private function http_post($url, $param,$user_name,$password, $post_file = false, $time = 30,$id='',$arr_header=array()){
|
||||
$oCurl = curl_init();
|
||||
if (stripos($url, "https://") !== false) {
|
||||
curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false);
|
||||
curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1
|
||||
|
||||
if(stripos($url,"pycredit")!== false){
|
||||
curl_setopt($oCurl, CURLOPT_SSLCERT, APP_PATH . 'extra' . DS . self::PYCERT_NAME); //pem
|
||||
curl_setopt($oCurl, CURLOPT_SSLCERTPASSWD, '123456');
|
||||
curl_setopt($oCurl, CURLOPT_SSLKEY, APP_PATH . 'extra' . DS . self::PYCERT_NAME); //pem
|
||||
curl_setopt($oCurl, CURLOPT_SSLKEYPASSWD, '123456'); //pem
|
||||
}
|
||||
}
|
||||
if (is_string($param) || $post_file) {
|
||||
$strPOST = $param;
|
||||
} else {
|
||||
$aPOST = array();
|
||||
foreach ($param as $key => $val) {
|
||||
$aPOST[] = $key . "=" . $val;
|
||||
}
|
||||
$strPOST = join("&", $aPOST);
|
||||
}
|
||||
|
||||
curl_setopt($oCurl, CURLOPT_URL, $url);
|
||||
curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);
|
||||
curl_setopt($oCurl, CURLOPT_POST, true);
|
||||
curl_setopt($oCurl, CURLOPT_TIMEOUT, $time); //只需要设置一个秒的数量就可以,超时时间
|
||||
curl_setopt($oCurl, CURLOPT_POSTFIELDS, $strPOST);
|
||||
// curl_setopt($oCurl, CURLOPT_HTTPHEADER, $arr_header);
|
||||
curl_setopt($oCurl, CURLOPT_USERPWD, "{$user_name}:{$password}");
|
||||
$sContent = curl_exec($oCurl);
|
||||
$aStatus = curl_getinfo($oCurl);
|
||||
curl_close($oCurl);
|
||||
|
||||
if (intval($aStatus["http_code"]) == 200) {
|
||||
return $sContent;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* DELETE 请求
|
||||
* @param string $url
|
||||
* @param array $param
|
||||
* @param boolean $user_name AUTH账号
|
||||
* @param boolean $password AUTH密码
|
||||
* @return string content
|
||||
*/
|
||||
function http_delete($url,$param,$user_name,$password) {
|
||||
$oCurl = curl_init();
|
||||
|
||||
if (is_string($param)) {
|
||||
$strPOST = $param;
|
||||
} else {
|
||||
$aPOST = array();
|
||||
foreach ($param as $key => $val) {
|
||||
$aPOST[] = $key . "=" . $val;
|
||||
}
|
||||
$strPOST = join("&", $aPOST);
|
||||
}
|
||||
$url = $url."?".$strPOST;
|
||||
|
||||
curl_setopt($oCurl, CURLOPT_URL, $url);
|
||||
curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);
|
||||
curl_setopt($oCurl, CURLOPT_CUSTOMREQUEST, 'DELETE');
|
||||
|
||||
//设置头
|
||||
curl_setopt($oCurl, CURLOPT_USERPWD, "{$user_name}:{$password}");
|
||||
curl_setopt($oCurl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36');
|
||||
|
||||
curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, false);//SSL认证。
|
||||
$sContent = curl_exec($oCurl);
|
||||
$aStatus = curl_getinfo($oCurl);
|
||||
|
||||
curl_close($oCurl);
|
||||
|
||||
if (intval($aStatus["http_code"]) == 200) {
|
||||
return $sContent;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* PUT 请求
|
||||
* @param string $url
|
||||
* @param array $param
|
||||
* @param boolean $user_name AUTH账号
|
||||
* @param boolean $password AUTH密码
|
||||
* @return string content
|
||||
*/
|
||||
function http_put($url,$param,$user_name,$password, $arr_header) {
|
||||
$oCurl = curl_init();
|
||||
|
||||
if (is_string($param)) {
|
||||
$strPOST = $param;
|
||||
} else {
|
||||
$aPOST = array();
|
||||
foreach ($param as $key => $val) {
|
||||
$aPOST[] = $key . "=" . $val;
|
||||
}
|
||||
$strPOST = join("&", $aPOST);
|
||||
}
|
||||
$url = $url."?".$strPOST;
|
||||
|
||||
curl_setopt($oCurl, CURLOPT_URL, $url);
|
||||
curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);
|
||||
curl_setopt($oCurl, CURLOPT_CUSTOMREQUEST, 'PUT');
|
||||
|
||||
//设置头
|
||||
curl_setopt($oCurl, CURLOPT_HTTPHEADER, $arr_header);
|
||||
// curl_setopt($oCurl, CURLOPT_USERPWD, "{$user_name}:{$password}");
|
||||
curl_setopt($oCurl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36');
|
||||
|
||||
curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, false);//SSL认证。
|
||||
$sContent = curl_exec($oCurl);
|
||||
$aStatus = curl_getinfo($oCurl);
|
||||
|
||||
curl_close($oCurl);
|
||||
|
||||
if (intval($aStatus["http_code"]) == 200) {
|
||||
return $sContent;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* getToken
|
||||
* @Author
|
||||
* @DateTime
|
||||
* @version 1.0
|
||||
* @param data 查询条件json
|
||||
* @return string 查询结果json字符串
|
||||
*/
|
||||
public function getToken($data){
|
||||
if (empty($data)) {
|
||||
return ReturnCode::AUTH_PARAMETER;
|
||||
}
|
||||
$apiFrom = self::API_TOKEN;
|
||||
$url = $this->auth_url . $apiFrom;
|
||||
$user_name = self::USERNAME;
|
||||
$password = self::PASSWORD;
|
||||
$res = $this->http_post($url, $data,$user_name,$password, false, 120);
|
||||
if ($res) {
|
||||
return $res;
|
||||
} else {
|
||||
return ReturnCode::AUTH_TOKEN;
|
||||
}
|
||||
}
|
||||
|
||||
public function getQrCodeToken($data){
|
||||
if (empty($data)) {
|
||||
return ReturnCode::AUTH_PARAMETER;
|
||||
}
|
||||
$apiFrom = self::API_QR_CODE;
|
||||
$url = $this->auth_url . $apiFrom;
|
||||
$user_name = self::USERNAME;
|
||||
$password = self::PASSWORD;
|
||||
$res = $this->http_post($url, $data,$user_name,$password, false, 120);
|
||||
if ($res) {
|
||||
return $res;
|
||||
} else {
|
||||
return ReturnCode::AUTH_TOKEN;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* userinfo
|
||||
* @Author
|
||||
* @DateTime
|
||||
* @version 1.0
|
||||
* @param data 查询条件
|
||||
* @return string 查询结果json字符串
|
||||
*/
|
||||
public function userinfo($data,$arr_header)
|
||||
{
|
||||
if (empty($data)) {
|
||||
return ReturnCode::AUTH_USER_TOKEN;
|
||||
}
|
||||
$apiFrom = self::API_USER_AUTH;
|
||||
$url = $this->auth_url . $apiFrom;
|
||||
$res = $this->http_get($url,$data,$arr_header);
|
||||
if ($res) {
|
||||
return $res;
|
||||
} else {
|
||||
return ReturnCode::AUTH_USER;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Logout
|
||||
* @Author llz
|
||||
* @DateTime 2022-10-10
|
||||
* @version 1.0
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
public function Logout($data)
|
||||
{
|
||||
if (empty($data)) {
|
||||
return ReturnCode::AUTH_USER_TOKEN;
|
||||
}
|
||||
$apiFrom = self::API_DEL_TOKEN;
|
||||
$url = $this->auth_url . $apiFrom;
|
||||
$user_name = self::USERNAME;
|
||||
$password = self::PASSWORD;
|
||||
$res = $this->http_delete($url,$data,$user_name,$password);
|
||||
|
||||
if ($res) {
|
||||
return $res;
|
||||
} else {
|
||||
return ReturnCode::AUTH_USER;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* userinfo
|
||||
* @Author
|
||||
* @DateTime
|
||||
* @version 1.0
|
||||
* @param data 查询条件
|
||||
* @return string 查询结果json字符串
|
||||
*/
|
||||
public function RefreshgetToken($userid,$refresh_token)
|
||||
{
|
||||
if (empty($refresh_token)) {
|
||||
return ReturnCode::AUTH_PARAMETER;
|
||||
}
|
||||
$apiFrom = self::API_TOKEN;
|
||||
|
||||
$userInfo = cache('userinfo'.$userid);
|
||||
$url = $this->auth_url . $apiFrom."?grant_type=".self::GRANT_TYPE."&refresh_token=".$refresh_token;
|
||||
$user_name = $userInfo['user_name'];
|
||||
$password = self::PASSWORD;
|
||||
$res = $this->http_post($url, array(),$user_name,$password, false, 120);
|
||||
|
||||
if ($res) {
|
||||
return $res;
|
||||
} else {
|
||||
return ReturnCode::AUTH_TOKEN;
|
||||
}
|
||||
}
|
||||
|
||||
public function getRole($data,$arr_header) {
|
||||
if (empty($data)) {
|
||||
return ReturnCode::AUTH_PARAMETER;
|
||||
}
|
||||
$apiFrom = self::API_USER_ROLE;
|
||||
$url = $this->auth_url . $apiFrom;
|
||||
$res = $this->http_get($url,$data);
|
||||
if ($res) {
|
||||
return $res;
|
||||
} else {
|
||||
return ReturnCode::AUTH_ROLE;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据部门id获取用户列表
|
||||
* @param [type] $data [description]
|
||||
* @return [type] [description]
|
||||
*/
|
||||
public function getUsersListById($data) {
|
||||
if (empty($data)) {
|
||||
return ReturnCode::AUTH_PARAMETER;
|
||||
}
|
||||
$apiFrom = self::API_DEPART_ROLE;
|
||||
$url = $this->auth_url . $apiFrom;
|
||||
$res = $this->http_get($url,$data);
|
||||
if ($res) {
|
||||
return $res;
|
||||
} else {
|
||||
return ReturnCode::AUTH_ROLE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据业务部id获取业务部下面所有部门信息
|
||||
* @param $data
|
||||
* @return array|int
|
||||
*/
|
||||
public function getBusinessDepartment($data) {
|
||||
if (empty($data)) {
|
||||
return ReturnCode::AUTH_PARAMETER;
|
||||
}
|
||||
$apiFrom = self::API_BUSINESS_DEPARTMENT;
|
||||
$url = $this->auth_url . $apiFrom;
|
||||
$res = $this->http_get($url,$data);
|
||||
if ($res) {
|
||||
return $res;
|
||||
} else {
|
||||
return ReturnCode::AUTH_ROLE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* getUser
|
||||
* @Author
|
||||
* @DateTime
|
||||
* @version 1.0
|
||||
* @param data 查询条件json
|
||||
* @return string 查询结果json字符串
|
||||
*/
|
||||
public function getUser($data){
|
||||
if (empty($data)) {
|
||||
return ReturnCode::AUTH_PARAMETER;
|
||||
}
|
||||
$apiFrom = self::API_MANY_USER_ROLE;
|
||||
|
||||
$url = $this->auth_url . $apiFrom;
|
||||
$data['systemCode'] = 'NCE';
|
||||
$res = $this->http_get($url,$data);
|
||||
|
||||
if ($res) {
|
||||
return $res;
|
||||
} else {
|
||||
return ReturnCode::AUTH_TOKEN;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* getUserList
|
||||
* @Author llz
|
||||
* @DateTime 2023-3-09
|
||||
* @version 1.0
|
||||
* @return string 查询结果json字符串
|
||||
*/
|
||||
public function getUserList(){
|
||||
$url = $this->auth_url . self::API_USER_LIST;
|
||||
|
||||
$res = $this->http_get($url,[]);
|
||||
|
||||
if ($res) {
|
||||
return $res;
|
||||
} else {
|
||||
return ReturnCode::DB_READ_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* updatePwd
|
||||
* @Author llz
|
||||
* @DateTime 2023-3-09
|
||||
* @version 1.0
|
||||
* @return string 查询结果json字符串
|
||||
*/
|
||||
public function updatePwd(array $data, array $arr_header): string
|
||||
{
|
||||
if (empty($data)) {
|
||||
return ReturnCode::AUTH_PARAMETER;
|
||||
}
|
||||
$apiFrom = self::API_UPDATE_PWD;
|
||||
$url = $this->auth_url . $apiFrom;
|
||||
$res = $this->http_put($url, $data, self::USERNAME, self::PASSWORD, $arr_header);
|
||||
if ($res) {
|
||||
return $res;
|
||||
} else {
|
||||
return ReturnCode::AUTH_USER;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user