1. 用户的首次登录

网盘依靠SA的scope-token授权进行登录。

用户首次登录时,会初始化一个以用户昵称为名称的私人文件夹。

1.1 TOKEN检验

sa记录着网盘的授权信息,网盘通过携带用户Id和token向sa发起http请求校验授权信息。校验通过返回状态码0。

apiUrl := fmt.Sprint( "/api/users/", uid)
userInfo, err := utils.GetRequestSaServer(apiUrl, c)
// 判断响应的状态码 为0则http请求成功
if userInfo.Status != 0 {……
}

1.2 权限检验

以下代码会根据SA反向代理的HTTP头信息获取用户数据:

func Get(c *gin.Context) *User {// 从上下文中获取session_useruser, exists := c.Get("session_user")if !exists {return nil}return user.(*User)
}

1.2.1 拥有者权限

拥有者权限可以创建存储池及存储分区,并对其进行添加、编辑、删除等操作。其权限是至关重要的,所以在进行存储池以及存储分区的增删改时,需要检验权限才能确保数据不是因为非用户操作而删除或丢失。根据SA返获取的用户数据,来进行判断:

u := session.Get(c)
if u == nil {response.HandleResponse(c, errors.New(status.PoolIsNotPermission), nil)c.Abort()return
}
if !u.IsOwner {response.HandleResponse(c, errors.New(status.PoolIsNotPermission), nil)c.Abort()return
}

1.2.2 读写权限

在用户(包括拥有者本人以外的所有用户)进行目录读取/创建、文件上传/下载/重命名时,需要判断该用户是否拥有权限来进行这些操作。

auth, err := utils.GetFilePathAuth(u.UserID, path)
if err != nil || auth == nil {response.HandleResponse(c, errors.New(status.ResourceNotAuthErr), nil)c.Abort()return
}
// 没有只读权限
if auth.Read == 0 {response.HandleResponse(c, errors.New(status.ResourceNotReadAuthErr), nil)c.Abort()return
}

智汀云盘-网盘开发:用户的首次登录相关推荐

  1. 智汀云盘-开发指南android端:文件夹解密逻辑

    1. 文件夹解密说明 只有加密的文件夹才需要解密,同一用户在查看同一加密文件夹或者是里面的文件/文件夹,每次成功校验密码后,再次查看同一加密文件夹或里面的文件/文件夹,不用输入密码,72个小时后查看才 ...

  2. 智汀云盘-开发指南android端:授权登录

    授权登录功能的实现主要是通过智汀云盘App发起一个携带要获取权限参数的意图去启动智汀App,智汀App根据权限参数获取相应的授权信息(包括家庭信息.用户信息和登录凭证)并通过广播发送消息,智汀云盘接收 ...

  3. 私有云存储 linux,搭建nextcloud私有云存储网盘

    本文将要为您介绍的是搭建nextcloud私有云存储网盘,具体完成步骤: 简介: 搭建个人云存储一般会想到ownCloud,堪称是自建云存储服务的经典.而Nextcloud是ownCloud原开发团队 ...

  4. 私有云linux虚拟机扩容内存,搭建nextcloud私有云存储网盘的教程详解

    Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步.共享.版本控制.团队协作等功能.它的客户端覆盖了Windows ...

  5. 如何用阿里云腾讯云服务器部署属于自己的私有云盘/网盘?

    kodbox可道云是一款轻量易用,安全可控的开源私有网盘系统.只需通过简单环境搭建,即可快速完成私有云/私有网盘/在线文档管理系统的部署和搭建.几分钟内搭建您的专属私有云盘/企业网盘.(有企业版和开发 ...

  6. php远程连接真机实现,搭建nextcloud私有云存储网盘的教程详解

    Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步.共享.版本控制.团队协作等功能.它的客户端覆盖了Windows ...

  7. office移动端_阿里云 Teambition 网盘产品快讯:移动端正式版即将上线,体验将大幅提升...

    据悉,阿里云 Teambition 网盘团队近期再次公布了产品进展,其中特别提到移动端即将在 11 月 20 日正式上线. 对于最近风特别大的阿里云 Teambition 网盘,你体验上了吗? 据了解 ...

  8. uc浏览器邀请码_阿里云Teambition网盘收到邀请码,上传下载不限速!!!

    微信公众号更新以后,推送不是按照优先来的:你们可以把我的微信公众号点击设置为星标,以便于及时的接收信息. 哈喽!大家好,我是斜杠君,每天早上八点推文(偶然会凌晨),还有关键词是最下面的数字.底部点赞. ...

  9. 阿里云 Teambition 网盘亲测体验,秀翻全网!

    话不多说,咱们进入正题,打开Teambition网盘官网:https://www.teambition.com/pan 或者:https://pan.aliyun.com  也可以进入,然后注册登陆填 ...

最新文章

  1. 山东财经大学东方学院有计算机吗,山东财经大学东方学院大一上学期计算机基础期中考试试题...
  2. android fragment 弹出对话框,Android DialogFragment弹框实现
  3. 「Python」pycharm多项目虚拟环境切换
  4. 牛客网_PAT乙级_1010月饼 (25)
  5. vim配置c语言开发环境变量,gcc配置和vim编程
  6. 一站式快速实现应用现代化,IBM Cloud Pak做对了什么? | 技术公开课
  7. CSDN排名规则变化略谈
  8. Linux系统管理--Centos6服务管理
  9. Windows下的YouTube-dl与FFmpeg下载安装配置
  10. 数据结构(五)树与二叉树-----堆
  11. 汇编程序的有符号数与无符号数的加减乘除(8086)
  12. 马士兵的经典名言!!!
  13. 36岁大数据人被中台问倒,没点架构思维,连面试都过不了?
  14. Docker Study Notes_Design in 2023
  15. ubuntu18.04 台式机无线网卡TPLink WDN5200H2.0驱动安装
  16. 拼多多客户差评回复话术
  17. 【我参加NVIDIA Sky Hackathon】CV篇
  18. Xcode 工程清理瘦身
  19. crontab python不生效_crontab 中 python 脚本执行失败的解决方法
  20. MATLAB/simulink 并网型双馈风力发电机(DFIG) 输出功率1.5MW 可实现单位因数并网

热门文章

  1. Windows系统远程访问ubuntu系统
  2. Cygwin安装tig工具
  3. oracle静默安装 详细流程
  4. django之:网页伪静态 JsonResponse form表单携带文件数据 CBV源码分析 模板语法传值 模板语法之过滤器 标签 自定义标签函数 过滤器、inclusion_tag模板的继承导入
  5. Jacob解析word
  6. HTML中添加图片的代码是什么?html如何正确的添加图片路径?
  7. NS2仿真:使用NS仿真软件模拟简单网络模型
  8. Quartz - 任务调度框架整合使用
  9. 学会Macdown语法写出数学公式的下标
  10. IM即时通讯-推荐框架