我在REST api中使用JWT Bearer身份验证方案。为了在成功验证后将jwt令牌返回给客户端,目前我正在使用https://tools.ietf.org/html/rfc6750#page-10
中描述的正文中的访问令牌响应{
"access_token":"mF_9.B5f-4.1JqM",
"token_type":"Bearer",
"expires_in":3600,
"refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA"
}
但是需要在其他HTTP请求中返回令牌,就像身份已经存在的注册一样。 所以,正考虑使用"Authentication-Info"标头。但是Bearer Scheme没有在任何地方指定“Authentication-Info”标头。我应该使用Authentication-Info标头来返回jwt令牌吗?
不使用OAuth 2.0,只使用JWT。
答案 0 :(得分:0)
你所拥有的对于OAuth 2.0可能是正确的,但对于普通的JWT来说,它更简单。当您使用普通的自制JWT时,客户端会将令牌放在名为 Authorization 的HTTP标头上。标题的值是这样的
Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ
标题字段也可以被调用。服务器和客户端必须就名称达成一致。 授权只是最常见的名称。
服务器通常会通过响应登录端点上的POST请求来发出令牌。登录成功后,令牌可以是响应正文的一部分。客户端将存储令牌,并使用上面的标头为每个请求发送令牌。您可以忘记与访问令牌和刷新令牌有关的所有内容。使用"普通"基本的JWT你只有一个令牌,那就是Bearer之后的值。
在用户注册时,我没有看到任何理由发出令牌。他们在注册后登录时可以获得它。
如果您只是实施普通身份验证,我建议您阅读有关OAuth的this {/ 3}}。