博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TOKEN设计
阅读量:6611 次
发布时间:2019-06-24

本文共 944 字,大约阅读时间需要 3 分钟。

hot3.png

TOKEN设计

  1. Api_Token

    1. 首先需要知道API是什么?

      API(Application Programming Interface)即应用程序接口。你可以认为 API 是一个软件组件或是一个 Web 服务与外界进行的交互的接口。而我们在这里要谈论的,是作为一家公司如何跟外界进行交互。从另一个角度来说,API 是一套协议,规定了我们与外界的沟通方式:如何发送请求和接收响应。

    2. API的特点:

      • 因为是非开放性的,所以所有的接口都是封闭的,只对公司内部的产品有效;
      • 因为是非开放性的,所以OAuth那套协议是行不通的,因为没有中间用户的授权过程;
      • 接口分为需要用户登录才能访问的和不需要用户登录就可访问的;
    3. 职责

      保持接口访问的隐蔽性和有效性,保证接口只有可信任的来源才可以访问。

    4. 模式:

      现在的接口基本是mvc模式,URL基本是restful风格,URL大体格式如下:

      http://www.api.com/模块名/控制器名/方法名?参数名1=参数值1&参数名2=参数值2

      生成规则参考如下:

      $api_token = md5 ('模块名' + '控制器名' + '方法名' + '时间' + '加密密钥');
    5. 例子

  2. User_Token

    1. 职责

      保护用户的用户名及密码多次提交,以防密码泄露。

    2. 模式

      登录成功后,服务端返回一个user_token,生成规则参考如下:

      $user_token = md5('用户的uid' + 'Unix时间戳' + '证书私钥')

      服务端生成user_token后,返回给客户端(自己存储),客户端每次接口请求时,如果接口需要用户登录才能访问,则需要把 user_id与user_token传回给服务端,服务端接受到这2个参数后,需要做以下几步:

      1. 检测user_token的有效性;
      2. 删除过期的user_token表记录;
      3. 根据user_id,user_token 获取表记录,如果表记录不存在,直接返回错误,如果记录存在,则进行下一步;
      4. 更新user_token 的过期时间(延期,保证其有效期内连续操作不掉线);
      5. 返回接口数据;

转载于:https://my.oschina.net/u/3756690/blog/2877511

你可能感兴趣的文章
Kubernetes+Prometheus+Grafana部署笔记
查看>>
linux磁盘管理基本命令
查看>>
HTML
查看>>
【转】左手坐标系和右手坐标系
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
POJ 3335 Rotating Scoreboard 半平面交
查看>>
oracle 闪回查询
查看>>
window.location.href和window.location.replace的区别
查看>>
《Gamestorming》读书笔记
查看>>
域名和网址链接被微信浏览器拦截怎么办 微信屏蔽网址打开如何解决
查看>>
SpringBoot 统一响应格式
查看>>
使用SQL Server Analysis Services数据挖掘的关联规则实现商品推荐功能(二)
查看>>
ubuntu下安装jdk
查看>>
C/S与B/S架构比较
查看>>
XML学习总结(2)——XML简单介绍
查看>>
python操作数据库-安装
查看>>
vs.net删除转移文件
查看>>
你真的了解interface和内部类么
查看>>
java中常用的类型转换
查看>>