support plugin

This commit is contained in:
xiaomlove
2022-06-03 03:42:53 +08:00
parent 29d414ce0a
commit 44c750234a
21 changed files with 333 additions and 68 deletions

View File

@@ -2,7 +2,10 @@
namespace App\Providers;
use App\Models\User;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Gate;
class AuthServiceProvider extends ServiceProvider
@@ -25,6 +28,34 @@ class AuthServiceProvider extends ServiceProvider
{
$this->registerPolicies();
//
Auth::viaRequest('nexus-cookie', function (Request $request) {
return $this->getUserByCookie($request->cookie());
});
}
private function getUserByCookie($cookie)
{
if (empty($cookie["c_secure_pass"]) || empty($cookie["c_secure_uid"]) || empty($cookie["c_secure_login"])) {
return null;
}
$b_id = base64($cookie["c_secure_uid"],false);
$id = intval($b_id ?? 0);
if (!$id || !is_valid_id($id) || strlen($cookie["c_secure_pass"]) != 32) {
return null;
}
$user = User::query()->find($id);
if (!$user) {
return null;
}
if ($cookie["c_secure_login"] == base64("yeah")) {
if ($cookie["c_secure_pass"] != md5($user->passhash . $_SERVER["REMOTE_ADDR"])) {
return null;
}
} else {
if ($cookie["c_secure_pass"] !== md5($user->passhash)) {
return null;
}
}
return $user;
}
}