源码分析相关面试题

Activity相关面试题

与XMPP相关面试题

与性能优化相关面试题

与登录相关面试题

与开发相关面试题

与人事相关面试题

今天文章比较简单,主要是为了录制面试题系列,保证文章的完整性来帮助那些想找工作的哥们,各位高级程序员请勿拍砖,不过把下面三段视频都看完,多多少少会有些收获。。。

本文配套视频:

在android开发中,用户登录时,客户端会接收到token值,请描述一下对token的理解?

Token的引入:

Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。

Token的定义:

Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。

使用Token的目的: Token的目的是为了验证用户登录情况以及减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。

Token的应用:

  1. 当用户首次登录成功之后, 服务器端就会生成一个 token 值,这个值,会在服务器保存token值(保存在数据库中),再将这个token值返回给客户端
  2. 客户端拿到 token 值之后,使用sp进行保存
  3. 以后客户端再次发送网络请求(一般不是登录请求)的时候,就会将这个 token 值附带到参数中发送给服务器
  4. 服务器接收到客户端的请求之后,会取出token值与保存在本地(数据库)中的token值做对比
  5. 如果两个 token 值相同, 说明用户登录成功过!当前用户处于登录状态
  6. 如果没有这个 token 值, 没有登录成功
  7. 如果 token 值不同: 说明原来的登录信息已经失效,让用户重新登录

使用一分钟利用开源中国接口获取登录token

利用一分钟时间解析服务器返回的token数据

懒得写文字了,直接看视频吧,看完会有不小的收获哦

登录和注销 (Cookie, Session)

  • 登陆过程

    1. 先把用户名和密码传给服务器(请求头中没有Cookie)
    2. 服务器验证用户名和密码
    3. 验证通过->响应头中返回(Cookies)一个或多个key=value;key1=value1
    4. 客户端保存这些Cookies到本地文件.
  • 请求数据过程

    1. 如果没有Cookie, 只能获取到公共信息.
    2. 把Cookie放到请求头中, 可以获取到Cookie对应的账号的隐私数据.
    3. 如果Cookie超时了(一小时, 一周, 一个月), 服务器同样不返回隐私数据.
  • 注销过程

    1. 删除本地的Cookie
    2. 以后的请求头中都没有Cookie
    3. 服务器不会再知道客户端是谁, 会话结束.
  • 欢迎关注微信公众号,长期推荐技术文章和技术视频

微信公众号名称:Android干货程序员

img