| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- local lua_mongo = _G.lua_mongo
- local Config = require("Config")
- local Log = require("common.Log")
- local Util = require("common.Util")
- local PfLogic = require("platform.PfLogic")
- -- 是否需要检验账号
- local function isNeedCheck(account)
- if Config.IS_USE_GM_CMD == true then
- return
- end
- --[[if PfLogic.isKunTang() or
- PfLogic.isShouQ() or
- PfLogic.isFKW() or
- PfLogic.isQQ() or
- PfLogic.isAug() or
- PfLogic.is9377() or
- PfLogic.isTaptap() or
- PfLogic.isYingHe() then
- return -- 某些平台,不开校验
- end
- return true]]
- return
- end
- local function getReallyAccout(account)
- if not account then return end
- local tb = Util.split(account, "-")
- if #tb < 2 then return end
- local svrIndex = tonumber(tb[1])
- if math.abs(Config.SVR_INDEX - svrIndex) >= 100000 then
- return -- 账号服务器应该一致
- end
- local index = #tb
- local realAccount = ""
- for i = 2, index do
- if i > 2 then
- realAccount = realAccount .. "-"
- end
- realAccount = realAccount .. tb[i]
- end
- return realAccount
- end
- function getCalckey(account, timestamp, ip)
- return lua_mongo.md5(account .. timestamp .. ip .. Config.AUTH_KEY)
- end
- function authCheck(account, authkey, timestamp, ip)
- if isNeedCheck(account) ~= true then
- return true
- end
- local realAccount = getReallyAccout(account)
- if not realAccount then
- Log.write(Log.LOGID_TEST, "auth check fail no realaccount", account, authkey, timestamp, os.time())
- return
- end
- local sec = os.time() - timestamp
- if math.abs(sec) > 86400 then
- Log.write(Log.LOGID_TEST, "auth check fail ts err", account, authkey, timestamp, os.time())
- return
- end
- local calckey = getCalckey(realAccount, timestamp, ip)
- if calckey ~= authkey then
- Log.write(Log.LOGID_TEST, "auth check fail calckey", account, authkey, timestamp, os.time(), calckey)
- return
- end
- return true
- end
|