Rails 5.2 Auth - 在create_new_auth_token之后返回令牌

时间:2018-05-19 12:33:18

标签: ruby-on-rails devise ruby-on-rails-5 devise-token-auth

我正在使用devise_token_auth,我遇到了一个奇怪的场景。

我的数据库中只有一个用户,当我在控制台中询问他的令牌时,我明白了:

$ user.tokens

{
    "_5_Mh40SfQvsnkerykJMIw"=>{
        "token"=>"$2a$10$EScwGJLVba9oN1uek0m0bOy6.nyRq9q6yFO25nKbiPCOslUEwBrFi",
        "expiry"=>1527942239,
        "last_token"=>nil,
        "updated_at"=>"2018-05-19T14:23:59.127+02:00"
    }
}

所以现在我想要一个新的令牌,所以我执行以下命令:

$ user.create_new_auth_token

这是对该电话的回应

"access-token"=>"Uof0cB0KcI5RH-GFOCezDw",
"token-type"=>"Bearer",
"client"=>"J_Bb35u9pcBCUSLuzP8axA",
"expiry"=>"1527942277",
"uid"=>"eddie@me.com"

哪个应该是新令牌,对吧?所以我再次检查用户的标记:

$ user.tokens

{
    "_5_Mh40SfQvsnkerykJMIw"=>{
        "token"=>"$2a$10$EScwGJLVba9oN1uek0m0bOy6.nyRq9q6yFO25nKbiPCOslUEwBrFi",
        "expiry"=>1527942239,
        "last_token"=>nil,
        "updated_at"=>"2018-05-19T14:23:59.127+02:00"
    },
    "J_Bb35u9pcBCUSLuzP8axA"=>{
        "token"=>"$2a$10$trmOQQOnQRfMXGk0s8XS5ufUl9OHDnPcK7f4M4qXfGggj4gCUIc12",
        "expiry"=>1527942277,
        "last_token"=>nil,
        "updated_at"=>"2018-05-19T14:24:37.637+02:00"
    }
}

现在,你看到了这个问题吗?新客户J_Bb35u9pcBCUSLuzP8axA匹配但我在创建新令牌时收到的access-tokenUof0cB0KcI5RH-GFOCezDw)与存储在数据库中的$2a$10$trmOQQOnQRfMXGk0s8XS5ufUl9OHDnPcK7f4M4qXfGggj4gCUIc12匹配<{1}}

为什么?我认为在创建新令牌时的响应会 同样的道理。 access-token是什么意思?它的用途是什么?

1 个答案:

答案 0 :(得分:1)

  

为什么?我认为在创建新令牌时,响应将是同一个令牌。

这是因为access-token已在DB中加密保存,如here所述。

  

访问令牌是什么意思?它的用途是什么?

它是一个令牌,用作每个请求的客户端访问标识(如密码),因此不应将其存储为纯文本。