找回密码
 立即注册
查看: 1096|回复: 0

网站登录权限简单验证示例

[复制链接]

17

主题

1

回帖

111

积分

管理员

积分
111
发表于 2024-6-15 19:58:35 | 显示全部楼层 |阅读模式
该示例演示如何使用session存储与校验用户权限
show.png
local request = require("fastweb.request")
local response = require("fastweb.response")
local fw = require("fastweb")
local cjson = require("cjson")
local function reply(code,msg,data)
    
    response.header("Content-Type","application/json")
    response.send(cjson.encode({
        code = code,
        msg = msg,
        data = data
    }))
    
end

-- 登录
local function login()
    local token = request.header("token")
    -- 获取session
    local session = request.session(token)
    -- 验证session有效
    if session:check() then
        reply(201,"你已经登录过了")
        return
    end

    -- 验证账号密码
    if request.param("username") ~= "fastweb" or request.param("password") ~= "123456" then
        reply(201,"账号或密码不正确")
        return
    end

    -- 生成TOKEN
    token = fw.make_software_guid()
    session:init(token)


    -- 填充用户信息
    session:set("login_time",os.date("%Y-%m-%d %H:%M:%S"))

    reply(200,"",{
        token = token
    })
end
-- 获取个人信息
local function getinfo()
    local token = request.header("token")
    -- 获取session
    local session = request.session(token)
    if session:check() == false then
        reply(401,"登录信息已过期")
        return
    end

    reply(200,"",{
        login_time = session:get("login_time")
    })
end

-- 判断请求类型
if request.param("action") == "login" then
    login()
elseif request.param("action") == "getinfo" then
    getinfo()
end
1、使用session,通过获取协议头token作为唯一标识符验证和存储用户临时信息。
2、session() 函数代码在website.lua

www.zip (32.34 KB, 下载次数: 3)

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Fastweb

GMT+8, 2024-10-18 15:11 , Processed in 0.025596 second(s), 20 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表