码迷,mamicode.com
首页 > Windows程序 > 详细

api访问权限控制

时间:2018-10-29 14:49:27      阅读:437      评论:0      收藏:0      [点我收藏+]

标签:ref   hub   get   erlang   lan   openresty   nbsp   rmi   perm   

1.当用户登录时,在redis中存储对应的权限,在openresty配置要进行控制的权限,解析成一颗树

  

2.在用户访问api时,通过用户id在openresty中提取权限,和权限树进行比较。

 

local permission = MatchUrlTree(ngx.var.uri,ngx.req.get_method())
  if permission then
    local permission_json,err =redis_sess:get(permission_key)
    if permission_json == ngx.null or permission_json == "" then
      ngx.exit(ngx.HTTP_FORBIDDEN) 
    end
    local ok,permission_data = pcall(json.decode,permission_json)
    if not ok then 
      ngx.log(ngx.ERR, "json decode error")
      ngx.exit(ngx.OK)
    end
    if not permission_data[permission] then
      ngx.exit(ngx.HTTP_FORBIDDEN) 
    end
  end
end

  

api访问权限控制

标签:ref   hub   get   erlang   lan   openresty   nbsp   rmi   perm   

原文地址:https://www.cnblogs.com/yanbiao/p/9870419.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!