智汀云盘-网盘开发:用户的首次登录
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
}
智汀云盘-网盘开发:用户的首次登录相关推荐
- 智汀云盘-开发指南android端:文件夹解密逻辑
1. 文件夹解密说明 只有加密的文件夹才需要解密,同一用户在查看同一加密文件夹或者是里面的文件/文件夹,每次成功校验密码后,再次查看同一加密文件夹或里面的文件/文件夹,不用输入密码,72个小时后查看才 ...
- 智汀云盘-开发指南android端:授权登录
授权登录功能的实现主要是通过智汀云盘App发起一个携带要获取权限参数的意图去启动智汀App,智汀App根据权限参数获取相应的授权信息(包括家庭信息.用户信息和登录凭证)并通过广播发送消息,智汀云盘接收 ...
- 私有云存储 linux,搭建nextcloud私有云存储网盘
本文将要为您介绍的是搭建nextcloud私有云存储网盘,具体完成步骤: 简介: 搭建个人云存储一般会想到ownCloud,堪称是自建云存储服务的经典.而Nextcloud是ownCloud原开发团队 ...
- 私有云linux虚拟机扩容内存,搭建nextcloud私有云存储网盘的教程详解
Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步.共享.版本控制.团队协作等功能.它的客户端覆盖了Windows ...
- 如何用阿里云腾讯云服务器部署属于自己的私有云盘/网盘?
kodbox可道云是一款轻量易用,安全可控的开源私有网盘系统.只需通过简单环境搭建,即可快速完成私有云/私有网盘/在线文档管理系统的部署和搭建.几分钟内搭建您的专属私有云盘/企业网盘.(有企业版和开发 ...
- php远程连接真机实现,搭建nextcloud私有云存储网盘的教程详解
Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步.共享.版本控制.团队协作等功能.它的客户端覆盖了Windows ...
- office移动端_阿里云 Teambition 网盘产品快讯:移动端正式版即将上线,体验将大幅提升...
据悉,阿里云 Teambition 网盘团队近期再次公布了产品进展,其中特别提到移动端即将在 11 月 20 日正式上线. 对于最近风特别大的阿里云 Teambition 网盘,你体验上了吗? 据了解 ...
- uc浏览器邀请码_阿里云Teambition网盘收到邀请码,上传下载不限速!!!
微信公众号更新以后,推送不是按照优先来的:你们可以把我的微信公众号点击设置为星标,以便于及时的接收信息. 哈喽!大家好,我是斜杠君,每天早上八点推文(偶然会凌晨),还有关键词是最下面的数字.底部点赞. ...
- 阿里云 Teambition 网盘亲测体验,秀翻全网!
话不多说,咱们进入正题,打开Teambition网盘官网:https://www.teambition.com/pan 或者:https://pan.aliyun.com 也可以进入,然后注册登陆填 ...
最新文章
- 山东财经大学东方学院有计算机吗,山东财经大学东方学院大一上学期计算机基础期中考试试题...
- android fragment 弹出对话框,Android DialogFragment弹框实现
- 「Python」pycharm多项目虚拟环境切换
- 牛客网_PAT乙级_1010月饼 (25)
- vim配置c语言开发环境变量,gcc配置和vim编程
- 一站式快速实现应用现代化,IBM Cloud Pak做对了什么? | 技术公开课
- CSDN排名规则变化略谈
- Linux系统管理--Centos6服务管理
- Windows下的YouTube-dl与FFmpeg下载安装配置
- 数据结构(五)树与二叉树-----堆
- 汇编程序的有符号数与无符号数的加减乘除(8086)
- 马士兵的经典名言!!!
- 36岁大数据人被中台问倒,没点架构思维,连面试都过不了?
- Docker Study Notes_Design in 2023
- ubuntu18.04 台式机无线网卡TPLink WDN5200H2.0驱动安装
- 拼多多客户差评回复话术
- 【我参加NVIDIA Sky Hackathon】CV篇
- Xcode 工程清理瘦身
- crontab python不生效_crontab 中 python 脚本执行失败的解决方法
- MATLAB/simulink 并网型双馈风力发电机(DFIG) 输出功率1.5MW 可实现单位因数并网