国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

uniapp前端寫了注冊對接到Webman Admin自帶用戶管理,根據(jù)ai給出的方案無法成功

ali

一、新增數(shù)據(jù)庫字段

-- 添加用戶來源及第三方登錄字段
ALTER TABLE `wa_users`
ADD COLUMN `source` varchar(32) COLLATE utf8mb4_general_ci DEFAULT 'web' COMMENT '用戶來源(web/miniprogram/app)' AFTER `status`,
ADD COLUMN `openid` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '小程序openid' AFTER `source`,
ADD COLUMN `unionid` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '小程序unionid' AFTER `openid`,
ADD COLUMN `register_ip` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '注冊IP' AFTER `unionid`,
ADD COLUMN `register_time` datetime DEFAULT NULL COMMENT '注冊時間' AFTER `register_ip`;

-- 添加索引
ALTER TABLE `wa_users`
ADD INDEX `idx_source` (`source`),
ADD UNIQUE INDEX `idx_openid` (`openid`),
ADD INDEX `idx_register_time` (`register_time`);

二、后端實現(xiàn)(Webman Admin)

  1. 控制器 app/admin/controller/Miniprogram.php
    因Webman Admin插件目錄app/admin不存在,所以在/www/wwwroot/webman/plugin/admin/app/controller新建了Miniprogram.php
    
    <?php
    namespace app\admin\controller;

use app\admin\model\WaUsers;
use support\Request;
use Respect\Validation\Validator as v;
use Webman\Redis;

class Miniprogram
{
/**

  • 小程序用戶注冊
    */
    public function register(Request $request)
    {
    // 驗證請求數(shù)據(jù)
    $validator = v::key('username', v::stringType()->length(4, 20))
    ->key('password', v::stringType()->length(6, 32));

    try {
        $validator->assert($request->post());
    } catch (\Exception $e) {
        return json(['code' => 400, 'msg' => $e->getMessage()]);
    }
    
    $username = $request->post('username');
    $password = $request->post('password');
    $ip = $request->getRealIp();
    
    // 檢查用戶名是否已存在
    if (WaUsers::where('username', $username)->exists()) {
        return json(['code' => 400, 'msg' => '用戶名已存在']);
    }
    
    // 檢查IP注冊頻率(防批量注冊)
    $redisKey = "register:ip:{$ip}";
    $registerCount = Redis::get($redisKey) ?: 0;
    
    if ((int)$registerCount >= 5) {
        return json(['code' => 403, 'msg' => '注冊過于頻繁,請稍后再試']);
    }
    
    // 增加IP注冊計數(shù)(有效期1小時)
    Redis::incr($redisKey);
    Redis::expire($redisKey, 3600);
    
    try {
        // 創(chuàng)建用戶
        $user = WaUsers::create([
            'username' => $username,
            'password' => password_hash($password, PASSWORD_DEFAULT),
            'nickname' => $username,
            'source' => 'miniprogram',
            'register_ip' => $ip,
            'register_time' => date('Y-m-d H:i:s'),
            'join_time' => date('Y-m-d H:i:s'),
            'join_ip' => $ip,
            'status' => 1, // 啟用狀態(tài)
            'role' => 1,   // 普通用戶角色
            'created_at' => date('Y-m-d H:i:s'),
            'updated_at' => date('Y-m-d H:i:s')
        ]);
    
        return json([
            'code' => 200, 
            'msg' => '注冊成功',
            'data' => ['user_id' => $user->id]
        ]);
    } catch (\Exception $e) {
        return json(['code' => 500, 'msg' => '注冊失敗,請重試']);
    }

    }
    }

    
    2. 路由配置 app/admin/route/route.php
    因為app/admin下沒有route文件夾,route。php在/www/wwwroot/webman/plugin/admin/config目錄下,所以在/www/wwwroot/webman/plugin/admin/config/route.php添加了
    ```php
    use support\Route;

// 小程序接口
Route::group('/api/miniprogram', function () {
Route::post('/register', [\app\admin\controller\Miniprogram::class, 'register']);
});

### 完整內(nèi)容如下:
```php
<?php

use plugin\admin\app\controller\AccountController;
use plugin\admin\app\controller\DictController;
use Webman\Route;
use support\Request;
use support\Route;

// 小程序接口
Route::group('/api/miniprogram', function () {
    Route::post('/register', [\app\admin\controller\Miniprogram::class, 'register']);
});

Route::any('/app/admin/account/captcha/{type}', [AccountController::class, 'captcha']);

Route::any('/app/admin/dict/get/{name}', [DictController::class, 'get']);

Route::fallback(function (Request $request) {
    return response($request->uri() . ' not found' , 404);
}, 'admin');

到這一步,后臺就打不開了,給的步驟還沒執(zhí)行完

252 1 0
1個回答

JustForFun

看了下你上一條提問,能不能學會自己寫代碼看報錯。。。

  1. 命名空間應該是namespace plugin\admin\app\controller;;
  2. 路由直接寫在plugin/admin/config/route.php就可以;
  3. 業(yè)務代碼沒空看,自己修復;

這不接口就通了?

截圖

  • ali 20天前

    謝謝

  • vs7717 19天前

    還是你有空

  • JustForFun 17天前

    一兩分鐘的事,就靠網(wǎng)友貢獻的錯誤示例來增加自己的項目經(jīng)驗[手動滑稽]

??