账号状态检查
parent
3605c7c707
commit
e06c590496
|
|
@ -38,6 +38,8 @@ class LoginController extends Controller
|
|||
|
||||
$user = $this->{$method}($request);
|
||||
|
||||
$user->checkStatus();
|
||||
|
||||
if ($type === 'password') {
|
||||
if ($user->old_password) {
|
||||
$user->password = $request->input('password');
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
|
||||
namespace App\Endpoint\Api\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class CheckUserStatus
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle(Request $request, Closure $next)
|
||||
{
|
||||
if ($user = $request->user()) {
|
||||
$user->checkStatus();
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
|
|
@ -96,7 +96,10 @@ Route::group([
|
|||
Route::post('unbind-user/{provider}', [Auth\SocialiteAuthController::class, 'unbindUser']);
|
||||
});
|
||||
|
||||
Route::middleware(['auth:api'])->group(function () {
|
||||
Route::middleware([
|
||||
'auth:api',
|
||||
\App\Endpoint\Api\Http\Middleware\CheckUserStatus::class,
|
||||
])->group(function () {
|
||||
// 我的信息
|
||||
Route::get('me', [UserController::class, 'show']);
|
||||
Route::put('me', [UserController::class, 'update']);
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Exceptions\BizException;
|
||||
use Dcat\Admin\Traits\HasDateTimeFormatter;
|
||||
use Illuminate\Auth\Authenticatable;
|
||||
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
|
||||
|
|
@ -523,4 +524,17 @@ class User extends Model implements AuthorizableContract, AuthenticatableContrac
|
|||
|
||||
return $user;
|
||||
}
|
||||
|
||||
public function checkStatus()
|
||||
{
|
||||
if (in_array($this->status, [static::STATUS_ACTIVE, static::STATUS_INACTIVATED])) {
|
||||
return;
|
||||
} elseif ($this->status === static::STATUS_FROZEN) {
|
||||
abort(403, '账号已冻结');
|
||||
} elseif ($this->status === static::STATUS_DISABLED) {
|
||||
abort(403, '账号已禁用');
|
||||
}
|
||||
|
||||
abort(403, '账号状态异常');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue