如何取得管理员的 usertoken什么意思

1、因为是非开放性的所以所有嘚接口都是封闭的,只对公司内部的产品有效;

2、因为是非开放性的所以OAuth那套协议是行不通的,因为没有中间用户的授权过程;

3、有点接口需要用户登录才能访问;

4、有点接口不需要用户登录就可访问;

针对以上特点移动端与服务端的通信就需要2把钥匙,即2个token

它的职責是保持接口访问的隐蔽性和有效性,保证接口只能给自家人用怎么做到?参考思路如下:

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

/模块名/控制器名/方法名?参数名1=参数值1&参数名2=参数值2&参数名3=参数值3

接口token生成规则参考如下:

1、 '' 为当天时间

2、'加密密钥' 为私有的加密密钥,手机端需要在服务端注册一个“接口使用者”账号后系统会分配一个账号及密码,数据表设计参考如下:

(注:只列出了核惢字段其它的再扩展吧!!!)

服务端接口校验,PHP实现流程如下:

使用token防止表单重复提交

如何防止表单重复提交 在前台页面中放置一個隐藏域用于存放session中的token,当第一次提交时验证token相同后会将session中的token信息更新,页面重复提交时因为表单中的token值没有更新,所以提交失败

此外,要避免“加token但不进行校验”的情况在session中增加了token,但服务端没有对token进行验证根本起不到防范的作用。

如何防止token劫持

token肯定会存在泄露的问题。比如我拿到你的手机把你的token拷出来,在过期之前就都可以以你的身份在别的地方登录

解决这个问题的一个简单办法

1、在存储的时候把token进行

2、将请求URL、时间戳、token三者进行合并加盐签名,服务端校验有效性

这两种办法的出发点都是:窃取你存储的数据较为容噫,而反汇编你的程序hack你的加密解密和签名算法是比较难的然而其实说难也不难,所以终究是防君子不防小人的做法

admin用户可以用来创建domainproject,user在keystone.conf中,通过设定admin_token提供了一个初始的管理员令牌,假定为ADMIN我们用这个令牌来创建admin用户。这是个管理的问题如果分配给不同的人员,应该要使鼡不同的username/password

这是显示用户的命令,我们看到里面有三个参数这三个参数几乎在所有的命令都需要设置。这会很烦的可以设置环境变量來解决。

为了更好地了解CLI后面将不使用环境变量

管理员属于管理角色:admin,因此要创建管理员首先要创建管理员角色。

我们还可以进入數据库看看:

注意:不要在此关联--project在确定role的时候再进行关联。

4、赋予用户admin的角色

我们验证一下结果curl是个很有用的linux命令

 

使用用户名和密碼来进行操作

这是本地命令方式,远程的RESTful接口需要先通过账号密码获取TOKEN,然后通过TOKEN来进行操作过程和在后面介绍。

在keystone.conf中注释掉原来的初始token重启服务,则只能通过账号和密码访问

我要回帖

更多关于 usertoken什么意思 的文章

 

随机推荐