HTTPBasicAuth原理、token颁发和认证、scope权限作用域

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTPBasicAuth原理、token颁发和认证、scope权限作用域相关的知识,希望对你有一定的参考价值。

参考技术A

HTTPBasicAuth

-->后端逻辑:
flask_httpauth 封装了很多语法糖,以便后端实现BasicAuth;

在api层通过语法糖调用 @auth.login_required ,从而出发 @auth.verify_password 进行数据拦截,校验前端携带过来的account和password,这里设计只返回加密过的account(即token)。

-->前端逻辑:

jsonwebtoken介绍和使用对称加密颁发验证token

参考技术A 使用JWT生成的token由三个部分构成: header payload signature,例如:

网址: https://www.npmjs.com/package/jsonwebtoken
JSON Web令牌 的实现。
这是针对开发的 draft-ietf-oauth-json-web-token-08 。它利用了 node-jws

颁发token
(异步)如果提供了回调,则使用 err 或JWT调用该回调。
(同步)以字符串形式返回JsonWebToken

payload 可以是对象文字,缓冲区或表示有效JSON的字符串。

secretOrPrivateKey 是一个字符串,缓冲区或对象,其中包含HMAC算法的秘密或RSA和ECDSA的PEM编码的私钥。如果使用带有密码短语的私钥, key, passphrase 则可以使用一个对象(基于 加密文档 ),在这种情况下,请确保您通过了该 algorithm 选项。
options :

带有默认值的同步符号(HMAC SHA256)

使用用RSA SHA256同步签名

异步签名

回溯jwt 30秒

验证token
(异步)如果提供了回调,则函数将异步操作。如果签名有效且可选的有效期,受众或发行者有效,则使用解码后的有效负载调用回调。如果没有,它将被错误调用。

(同步)如果未提供回调,则函数将同步执行。如果签名有效且可选的有效期限,受众或发行者有效,则返回解码后的有效负载。如果没有,它将抛出错误。

token 是JsonWebToken字符串

secretOrPublicKey 是一个字符串或缓冲区,其中包含HMAC算法的机密,或包含RSA和ECDSA的PEM编码的公钥。如果 jwt.verify 称为异步,则 secretOrPublicKey 可以是应该获取秘密或公共密钥的函数。请参阅下面的详细示例

如 本注释所述 ,还有其他库期望使用base64编码的机密(使用base64编码的随机字节),如果可以的话,您可以通过 Buffer.from(secret, 'base64') 这样做,机密将使用base64进行解码,并且令牌验证将使用原始库。随机字节。

options

支持的算法数组。当前支持以下算法。

例:颁发token和验证token

以上是关于HTTPBasicAuth原理、token颁发和认证、scope权限作用域的主要内容,如果未能解决你的问题,请参考以下文章

jsonwebtoken介绍和使用对称加密颁发验证token

IdentityServer4实战 - 谈谈 JWT Token 的安全策略

尝试使用 Cognito 向 Battle.net OIDC 进行身份验证时出现错误的 id_token 颁发者

前端开发应该学习的Token登录认证知识

前端应该学习的 Token 登录认证知识

IdentityServer4实战 - 谈谈 JWT Token 的安全策略