原来经常用oauth2 的password方案来做登录,自己给自己app做授权没毛病呀,但后面一下有点不对,这里应该是有问题的。于是学习了原生app登录的方案。并学习一系列登录有关知识。特此记录,这是第一篇。

PS:注意,标题中的token即不是oauth2 中的toekn。也不是JSON WEB Token(JWT)中的token

文章目录

  • 1 web端-session cookies方案
    • 1.1 登录
    • 1.2 登录保持
    • 1.3 登出
  • 2 APP端方案 -token
    • 2.1 APP登录
    • 2.2 登录保持
    • 2.3 登出
  • 3 安全性分析
  • 4 涉及到授权的问题
  • 5 参考链接;

一般情况下,登录方案主要解决三个问题1 登录 2 登录保持 3 登出。
注意以下所有登录方案的 登录及涉及鉴权API都是都是建立https基础上。

1 web端-session cookies方案

Session 是存放在服务器端的,类似于Session结构来存放用户数据,当浏览器 第一次发送请求时,服务器自动生成了一个Session和一个Session ID用来唯一标识这个Session,并将其通过响应发送到浏览器。当浏览器第二次发送请求,会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上,服务器从请求中提取出Session ID,并和保存的所有Session ID进行对比,找到这个用户对应的Session。

具体实现:

1.1 登录

首先用户通过post请求提交账户密码到服务器,服务器判断正确后生成一个sessionid,并将sessionid与userid等账户信息一起存储到内存性数据库(Redis)中,并将sessionid设置到cookies中响应。

1.2 登录保持

下次浏览器其他请求就可以从cookies中得到sessionid,从而从数据库中得到用户相关信息,则视为登录成功具有响应权限。当然我们应该为sessionid设置有效期。

1.3 登出

登出,则从数据中删除相应sessionid即可,以上即为web端的登录,登录保持,登出 简单的解决方案。

2 APP端方案 -token

同理,对于app对于APP端,同样可以采取类似于session的方式实现。嗯,token也是就是sessionid的另一名字。 此段描述仅为 当时学习到的一种简单的实现模型,并不是生产方案,建议使用web开发框架提供的方案或使用一些标准鉴权授权协议。

2.1 APP登录

APP登录也可以生成一个key用来标识该用户登录成功,因为app没有cookies的概念,所以这个key(sessionid)不能在存储到cookies中了。而是通过相应返回给了app,由app存储,现在它的名字又叫token了。

2.2 登录保持

每次app请求需要验证登录状态的api就带上这个token(请放在header 或body),而服务器同样从redis 通过该token得到相应的用户信息,来判断登录。登出过程同样

2.3 登出

同样从redis中删除相应token即可实现登出效果。

PS:注意,这里token即不是oauth2 中的toekn。也不是JSON WEB Token(JWT)中的token(这东西很难实现登出)。

示意图:

3 安全性分析

在网上看到很多花里花哨的RSA加密方案来确保第一次登录账户密码及后续的token不被拦截泄漏。如果登录和后续有权限操作的API均采用https,则同样是解决上诉问题(同样是RSA加密),当然服务器数据库泄漏和app本地token被盗,这种风险就不在本文讨论之列。

4 涉及到授权的问题

如果涉及到向三方应用授权,可能就需要部署oauth2授权协议。虽然同样可以用oauth2 的password为本身app进行授权,但如果oauth2一般情况是没有部署在redis这种内存性数据库中。每次请求都涉及到鉴权都会操作数据库,会极大的提高服务器负载。

5 参考链接;

http://ask.dcloud.net.cn/article/157

https://blog.csdn.net/bwh0520/article/details/78808181

原生app登录 后台方案(token方案)相关推荐

  1. app与后台的token、sessionId、RSA加密登录认证与安全解决方案

    一. 登录机制 粗略地分析, 登录机制主要分为登录验证.登录保持.登出三个部分.登录验证是指客户端提供用户名和密码,向服务器提出登录请求,服务器判断客户端是否可以登录并向客户端确认. 登录认保持是指客 ...

  2. 移动端App与后台服务的对接方案

    由于项目需要,抽时间整理了下移动端App与后台服务的对接方案,大致方案有如下三种,如有不正之处,欢迎批评指正. 1. 方案一 优点: 1) 模块划分清晰,模块间相互独立,互不影响: 缺点: 1)移动端 ...

  3. 登录双token方案

    登录双token方案 文章目录 登录双token方案 前言 方案设计 前言 当我们需要用户在指定时间内有操作时就可以不用登录(首次登录还是免不了的),而在指定时间内没有任何操作时就需要重新登录的话,那 ...

  4. app开发人脸登录和指纹登录_易讯云通讯推出“一键登录”,为App登录提供新方案...

    移动互联网时代,用户的耐心越来越少,注意力也越来越弱,追求便捷与高效.登录的方式从自定义的账号密码登录,到邮箱登录,到第三方登录与手机验证码登录两种登录方式进行竞争,到现在的个人指纹,人脸识别等的识别 ...

  5. uniapp本地数据库_Uniapp教程|App/uni-app离线本地存储方案

    5+App的离线存储 HTML5+的离线本地存储有如下多种方案: HTML5标准方案:cookie.localstorage.sessionstorage.websql.indexedDB HTML5 ...

  6. Android APP全局黑白化实现方案

    作者:小帅 链接:https://zhuanlan.zhihu.com/p/587516253 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 在清明节时各大APP都 ...

  7. android 签名包闪退,解决APP连续闪退的方案,你还不知道的签名方式

    原标题:解决APP连续闪退的方案,你还不知道的签名方式 用户在使用APP检测到连续闪退后,接下来要尝试对闪退进行修复,这里先分析可能的闪退原因: 闪退原因 连续闪退,可能是 App 启动关键路径中执行 ...

  8. 漫谈BCH Token方案

    Token是什么? Token是什么,Token有必要存在吗?如果说公链的币就是钱的话,那么Token就是票(或者说"通证").生活中处处需要钱,而有的时候,钱要换一种方式存在,那 ...

  9. 接受的token无法改变_基于BCH的新Token方案SLP的原理与应用

    2017年,ETH催生了一套Token体系,Token得到广泛应用,一年有几千个币种上线交易所,从而造就了一波牛市.到目前为止,数字货币,除了当做转账工具,如跨国转账,现金收款等,还有另外一个用途就是 ...

最新文章

  1. sharepoint 备份还原
  2. 大数据 互联网架构阶段 电商项目简介
  3. 第14讲:Selenium 的基本使用
  4. linux分割图片软件,桌面应用|5 种拆分 Linux 终端的方法
  5. 客座编辑:崔辰州(1976-),男,博士,中国科学院国家天文台研究员、硕士生导师,国家天文台信息与计算中心主任...
  6. fastjson把对象转化成json避免$ref
  7. 基于JAVA+Swing的仓库管理系统
  8. 以太坊执行miner.start返回null终极解决方案
  9. 网络工程师专用linux,软考网络工程师考点精讲之Linux系统
  10. CS5211:DP/eDP to 2Port LVDS
  11. [BZOJ3503]-[CQOI2014]和谐矩阵-高斯消元
  12. 3、MybatisPlus
  13. zeppelin部署安装
  14. Android开发获取当前经纬度和详细位置信息(原生代码实现)简单案例
  15. 评'深圳妙龄女白领控诉 要求“熬夜衰老”算工伤'
  16. java基础之Integer和Long
  17. 积分球测试软件无法创建新文档,积分球测试光通量不准确的解决方案
  18. Excel表中查找、去除重复项方法合集
  19. xbox360链接pc_如何在Windows PC上使用Xbox One控制器
  20. rhel8安装docker-ce

热门文章

  1. 利用随机数函数掷骰子
  2. Intel和AMD的区别
  3. Unity-live2D 实战篇笔记(背景音乐的设置,按钮触发的界面跳转)
  4. 手机坏了,有必要再修吗?
  5. Unicode双向算法详解(bidi算法)(一)
  6. OC方法以及文件编译
  7. 从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。 注意对于重复的emp_no进行忽略。...
  8. 基于ESP32的蓝牙翻页器设计(论文附调试成功代码!!)
  9. 降噪蓝牙耳机推荐,值得推荐的四款音质好的降噪耳机
  10. 后序线索化二叉树及遍历(图解)