接入JWT

Signed-off-by: vilson <545522390@qq.com>
This commit is contained in:
vilson 2019-01-29 21:31:30 +08:00
parent ea577de1e6
commit 25fde42041
4 changed files with 16 additions and 12 deletions

View File

@ -205,7 +205,10 @@ class Index extends BasicApi
if (isError($data)) { if (isError($data)) {
$this->error('token过期请重新登录', 401); $this->error('token过期请重新登录', 401);
} }
$this->success('', JwtService::getAccessToken(get_object_vars($data->data))); $accessToken = JwtService::getAccessToken(get_object_vars($data->data));
$accessTokenExp = JwtService::decodeToken($accessToken)->exp;
$tokenList['accessTokenExp'] = $accessTokenExp;
$this->success('', ['accessToken' => $accessToken, 'accessTokenExp' => $accessTokenExp]);
} }

View File

@ -30,21 +30,22 @@ class Auth
if ($currentOrganizationCode) { if ($currentOrganizationCode) {
setCurrentOrganizationCode($currentOrganizationCode); setCurrentOrganizationCode($currentOrganizationCode);
} }
// 登录状态检查
if (!empty($access['is_login'])) {
$authorization = $request->header('Authorization'); $authorization = $request->header('Authorization');
$accessToken = ''; $accessToken = '';
if ($authorization) { if ($authorization) {
$accessToken = explode(' ', $authorization)[1]; $accessToken = explode(' ', $authorization)[1];
} }
$data = JwtService::decodeToken($accessToken); $data = JwtService::decodeToken($accessToken);
// 登录状态检查
if (!empty($access['is_login'])) {
$isError = isError($data); $isError = isError($data);
if ($isError) { if ($isError) {
//TODO 启用refreshToken
if ($data['errno'] == 3) { if ($data['errno'] == 3) {
$msg = ['code' => 4010, 'msg' => 'accessToken过期']; $msg = ['code' => 401, 'msg' => 'accessToken过期'];
return json($msg); return json($msg);
} }
$msg = ['code' => 401, 'msg' => 'token过期请重新登录']; $msg = ['code' => 402, 'msg' => 'token过期请重新登录'];
return json($msg); return json($msg);
} }
setCurrentMember(get_object_vars($data->data)); setCurrentMember(get_object_vars($data->data));

View File

@ -5,7 +5,7 @@ return [
'key' => 'pearProject', 'key' => 'pearProject',
'alg' => 'HS256', 'alg' => 'HS256',
//access_token有效时间 //access_token有效时间
'accessTokenExp' => 20, 'accessTokenExp' => 3600,
//refresh_token有效时间 //refresh_token有效时间
'refreshTokenExp' => 3600 * 24 * 7, 'refreshTokenExp' => 3600 * 24 * 7,
//签发者 可选 //签发者 可选

View File

@ -100,7 +100,7 @@ class JwtService
public static function decodeToken($token) public static function decodeToken($token)
{ {
$jwtConfig = config('jwt.'); $jwtConfig = config('jwt.');
JWT::$leeway = 60;//当前时间减去60把时间留点余地 // JWT::$leeway = 60; //当前时间减去60把时间留点余地
try { try {
$decoded = JWT::decode($token, $jwtConfig['key'], array($jwtConfig['alg']));//解密方式,这里要和签发的时候对应 $decoded = JWT::decode($token, $jwtConfig['key'], array($jwtConfig['alg']));//解密方式,这里要和签发的时候对应
} catch (\Firebase\JWT\SignatureInvalidException $e) { //签名不正确 } catch (\Firebase\JWT\SignatureInvalidException $e) { //签名不正确