You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SmItH197的SteamAuth系统中仅允许指定SteamID登录?

限制特定SteamID登录SmItH197的SteamAuthentication系统

嘿,我来帮你搞定这个问题!要限制只有特定SteamID能登录这套SteamAuth系统,其实只需要在验证流程里加个简单的校验逻辑就行,步骤很清晰:


核心思路

在用户通过Steam官方验证、系统获取到用户SteamID之后,立刻检查这个ID是否在你预先设定的「允许登录列表」里。如果不在,就终止登录流程,拒绝用户访问。


具体操作步骤

  1. 找到回调处理文件
    打开项目里的 callback.php 文件——这是Steam验证完成后,系统处理用户信息的核心文件。

  2. 定义允许登录的SteamID列表
    在文件开头(或者验证逻辑之前),定义一个包含所有允许登录SteamID的数组。记得替换成你实际需要的ID:

    // 替换成你想要允许登录的SteamID(格式是765开头的完整ID)
    $allowed_steam_ids = [
        "76561198012345678",
        "76561198087654321"
    ];
    
  3. 获取当前用户的SteamID
    在系统完成Steam验证的代码之后(比如调用 $steam->validate() 成功后),获取当前登录用户的SteamID:

    // 获取当前验证通过的用户SteamID
    $current_steam_id = $steam->getSteamID();
    
  4. 添加权限校验逻辑
    紧接着加入判断:如果当前用户的SteamID不在允许列表里,就销毁会话并跳转到拒绝页面(或者首页):

    // 检查是否在允许列表中
    if (!in_array($current_steam_id, $allowed_steam_ids)) {
        // 销毁会话,清除登录状态
        session_destroy();
        // 跳转到首页并带上错误标识,方便前端提示
        header("Location: index.php?error=unauthorized");
        exit; // 终止后续代码执行
    }
    

额外提示

  • SteamID格式要正确:确保你用的是Steam的64位ID(765开头的那种),不是用户自定义的URL昵称或者短ID。
  • 动态管理列表:如果需要批量管理允许的ID,可以把列表存在数据库里,用SQL查询替换静态数组,比如:
    // 示例:从数据库获取允许的ID列表
    $allowed_steam_ids = $pdo->query("SELECT steam_id FROM allowed_users")->fetchAll(PDO::FETCH_COLUMN);
    
  • 错误提示优化:可以在首页判断 $_GET['error'] 参数,如果是 unauthorized,就显示「抱歉,您没有权限登录此系统」的提示。

内容的提问来源于stack exchange,提问作者friend

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:13:15