自动登录

  • iOS系统如何实现app登录类似微信只需登录一次,退出后不需要每次登录?
  • 我们先来看看登录流程
登录
  • 在app端保存用户名和密码,这种方法被认为是不安全的做法.即使加密也是存在不确定因素.用户名和密码不应该存在于手机端,只应该在用户第一次登录和服务端交互时候传给服务器的时候存在.登录成功之后不应该出现在手机端的disk及cache中,这样才能保证用户名和密码不被盗取.和服务端的交互采用https + ssl pinning + PKI来加强安全性.pps:之所以返回refresh token,是因为access token使用非常频繁,在网络中频繁传输会增大被盗取的可能性,所以有效时长应该较短,refresh token只有在更新access token时才会在网络中传输一次,相对安全,并且存储在手机的disk中也同样需要加密。
  • 一般的实现方法是客户端在第一次登录后,服务端会同时返回一个access token和refresh token,access token有失效期相对较短,用于每次和服务端通信的身份校验.refresh token用于access token失效后换取新的access token时的校验,成功后返回新的access token和新的refresh token.
  • 一般的app使用两层token就可以解决,但是如果实在追求安全性的话最好还是多套一两层.token最好放在头部.如果使用keychain来存储的话,程序删了重新安装还可以继续用,是直接存在机器里面的.但是有一点不安全的就是.如果手机被越狱以后,keychain是可以被取出来的.
  • OAuth 2.0认证流程,感兴趣的同学可以去研究研究.很好的展示了一个安全的认证流程应该是怎么样的.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 调用后端接口怎么样才安全? 在APP中保存登录数据,每次调用接口时传输 程序员总能给自己找到偷懒的方法,有的程序为...
    leonardni阅读 12,545评论 0 13
  • App登陆要实现的功能: 密码不会明文存储,并且不能反编绎解密; 在服务器端可以控制App端的登陆有效性,防止攻击...
    天天想念阅读 4,409评论 1 16
  • 制作密钥对 首先在服务器上制作密钥对。首先用密码登录到你打算使用密钥登录的账户,然后执行以下命令: 在客户端来看,...
    Gundy_阅读 1,662评论 0 4
  • Filter过滤器的概念 Java中的Filter 并不是一个标准的Servlet ,它不能处理用户请求,也不能对...
    字节码阅读 1,128评论 0 1
  • 隔着一个公交站台到另一个站台,蜂箱洒落在路边成了我心中的曲线,你所说的3分钟车程,我也数了数,嗯,如果让我...
    Ianvono阅读 367评论 0 0