1. 密钥令牌

1.1. 令牌机制

地球号的访问控制机制包含三部分,应用令牌(Application Token),登录令牌(Login Token)和角色权限(Role & Rule)。接下来分别介绍三种访问控制。早期的地球号设计中还包括了签名机制,目前已经废弃,但也作为参考列在本文档后。

1.1.1. 签名令牌(AppToken/AnonymusToken)

参考签名令牌

1.1.2. 应用令牌(AppToken/AnonymusToken)

用户在神店铺注册,登录后,才可以创建应用令牌。当然它的user_id是登录神店铺的人的ID。应用令牌的默认有效期是10年。使用应用令牌,可以用来登录,获取验证码,访问数据服务,访问算法服务。

1.1.3. 用户令牌(UsrToken/LoginToken)

用户持有应用令牌,在某个店铺登录后,就可以获取这个店铺的登录令牌。持有登录令牌,才可以访问目标店铺的资源了。

1.1.4. 角色权限

当用户在店铺登录后,它的所作所为,还要受token_user_id在token_shop_id中拥有的权限来决定的。

地球号的所有API都是有授权检查的,所有API的授权都放置在请求的Authorization的header里.API在发送前要在Authorization里填上token. 这个token有三种

  • 签名名牌:获取token的API本身需要一个token,在token里填写的是表明自己是地球号注册应用的签名信息sign。签名令牌只有一个功能,获取匿名令牌。
  • 应用令牌:又名匿名令牌,通过授权code访问地球号业务的API,在code里填写的是获取的token.
          客户端通过设备信息,应用包名,操作系统,制造商等信息从服务器端获取一个匿名授权,通过这个匿名授权可以获取地球号部分资源,如ECHO服务,位置翻译服务。
    
  • 用户令牌:又名登录令牌,通过登陆获取的令牌,通过它,一些API就可以获取登陆后才能访问的资源。
          客户端通过登陆API从服务器端获取一个登陆授权,通过这个登陆授权可以获取地球号全部资源
    

我们是通过签名令牌获取匿名令牌,然后用匿名令牌获取登陆令牌。

[!danger] 每个应用创建的时候,要创建A==算法,L==登录,D==数据 三种令牌,每种令牌创建两个,一个主,一个备用。

//签名令牌
headers["Authorization"] = "32位md5码"
//应用令牌(匿名令牌)的格式
headers["Authorization"] = "eyJhbGciOiJSUzI1NiIsImtpZCI6ImI1MGIxZWZmZGMwMzVlMjg2OWI2YzQ1ZjMzYmRmNWQ3In0.eyJpYXQiOjE1MzYxMTY4NDQsIm5iZiI6MTUzNjExNjg0NCwiZXhwIjoxNTM2MTIwNDQ0LCJpc3MiOiJMb3ZlYXJ0aCBEVUEgU2VydmljZSIsImF1ZCI6IkxvdmVhcnRoIEluYyIsImR1YSI6InpwdmV1ZVFKIiwiZGlkIjoiWmh4a09VTVciLCJ1aWQiOiJiNGIxNDdiYyIsImFpZCI6ImFIRVZZaEUxIn0.cPUYU5sgHINIdqqb_ymk8l3hnjVtcwZmUrH_8L3BysmpaBadTnRI1Y31HjTu7zjHAYLKztpJzy77nAXG6UL-tyXVWtwNeofsw4qiLnI2ZI-4NURY-V0z8NV_WdHAGdmQj2kGW91Ol1T8bWm8QJ-a6YX9Tz_bG960ksTYst5TzLv1BhOb13KJnLks7iLasuw015ZH237JqEmdiw1WK-m6BV2P4ewHkzMwO07ngyMXP6EUT659bWkcO_4YZtKNB80y_kQSYnQyMiLL04ytiJLC4P38g1XyIbwBNbCWvw4TYzcU8foYA0m2jJxw5-wWpUkkcogVa7Iwsmrmh50vFOwOvA"
//用户令牌(登录令牌)的格式
headers["Authorization"] = "eyJhbGciOiJSUzI1NiIsImtpZCI6ImI1MGIxZWZmZGMwMzVlMjg2OWI2YzQ1ZjMzYmRmNWQ3In0.eyJpYXQiOjE1MzYxMTY4NDQsIm5iZiI6MTUzNjExNjg0NCwiZXhwIjoxNTM2MTIwNDQ0LCJpc3MiOiJMb3ZlYXJ0aCBEVUEgU2VydmljZSIsImF1ZCI6IkxvdmVhcnRoIEluYyIsImR1YSI6InpwdmV1ZVFKIiwiZGlkIjoiWmh4a09VTVciLCJ1aWQiOiJiNGIxNDdiYyIsImFpZCI6ImFIRVZZaEUxIn0.cPUYU5sgHINIdqqb_ymk8l3hnjVtcwZmUrH_8L3BysmpaBadTnRI1Y31HjTu7zjHAYLKztpJzy77nAXG6UL-tyXVWtwNeofsw4qiLnI2ZI-4NURY-V0z8NV_WdHAGdmQj2kGW91Ol1T8bWm8QJ-a6YX9Tz_bG960ksTYst5TzLv1BhOb13KJnLks7iLasuw015ZH237JqEmdiw1WK-m6BV2P4ewHkzMwO07ngyMXP6EUT659bWkcO_4YZtKNB80y_kQSYnQyMiLL04ytiJLC4P38g1XyIbwBNbCWvw4TYzcU8foYA0m2jJxw5-wWpUkkcogVa7Iwsmrmh50vFOwOvA"

1.2. 令牌格式

应用令牌(匿名令牌)由创建应用addapp接口创建。 用户令牌(登录令牌)由用户登录addlogin接口创建。

参考地球号令牌格式

1.3. 令牌解释

使用token的解释服务GetToken.ExplainToken就可以访问Token的内容。也可以在线查看token的解析结果。www.xdua.com/token_explain.html

results matching ""

    No results matching ""