|
@@ -18,6 +18,8 @@ use App\Models\Permission;
|
|
|
use App\Models\Role;
|
|
|
use App\Models\Scopes\CompanyScope;
|
|
|
use App\Models\User;
|
|
|
+use GuzzleHttp\Client;
|
|
|
+use hisorange\BrowserDetect\Exceptions\Exception;
|
|
|
use Illuminate\Contracts\Encryption\DecryptException;
|
|
|
use Illuminate\Database\Query\Builder;
|
|
|
use Illuminate\Http\Request;
|
|
@@ -206,6 +208,38 @@ class UserController extends Controller
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取4s系统的访问令牌
|
|
|
+ *
|
|
|
+ * @return \Illuminate\Http\JsonResponse
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ public function get4sAccessToken()
|
|
|
+ {
|
|
|
+ $user = Auth::user();
|
|
|
+ if (!$user->fs_password) {
|
|
|
+ return $this->badRequest('The user has not set a 4s password');
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ $client = new Client();
|
|
|
+ $url = env("4sLoginUrl", "http://newlinker.net:18001/login/pc");
|
|
|
+ $response = $client->post($url, [
|
|
|
+ 'query' => [
|
|
|
+ 'username' => $user->username,
|
|
|
+ 'password' => $user->fs_password
|
|
|
+ ],
|
|
|
+ 'http_errors' => false
|
|
|
+ ]);
|
|
|
+ $result = json_decode($response->getBody()->getContents(), true);
|
|
|
+ if ($result['code'] == 200 && $result['data']['token']) {
|
|
|
+ return $this->success(['token' => $result['data']['token']]);
|
|
|
+ } else {
|
|
|
+ return $this->badRequest('get 4s token error: '. $result['message']);
|
|
|
+ }
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ return $this->badRequest('get 4s token error: ' . $e->getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
|
|
|
// public function byDepartment(Request $request){
|