通常 App 后端 acess_token/refresh_token 是按照何种规则生成?又是如何缓存的呢?

通过 google,目前了解到下面几种方法:

  1. MD5(userid,timestamp);
  2. AES(userid);
  3. 按照一定规则随机生成字符串

其中方案一由于 MD5 不可逆,那么请求时就需要带上 userid 去匹配 token了?

通过抓包其他 app,发现较多都会使用一个 32 位字符串(感觉是十六进制数),例如:b07e39c2-8459-4366-abe2-1c0ed0f5dae4 或者 b07e39c284594366abe21c0ed0f5dae4。感觉这个像是 MD5 得到的,但是我看在使用 token 时并没有传递 userid 之类的信息。不知道这种方案是如何生成 Token 的?

阅读 3.3k
2 个回答

这个东西生成的时候可以写入缓存或者数据库。本身不用带user_id,只要能根据access_token查询到user_id即可

我接触的项目token只是一个具有唯一性的string,具体的userid,ip等信息是和token的string一起存在DB里面的,也就是说token可以只是一个DB的uuid

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题