JSON Web令牌身份验证
adafruit-circuitpython-jwt的Python项目详细描述
简介
CircuitPython的JSON Web令牌(JWT)身份验证模块。JSON Web令牌是一种开放的行业标准 RFC 7519在双方之间安全地表示声明的方法。在
- 该库目前支持以下JWT生成和验证的签名算法:
- 无编码(“无”)
- RS256/SHA-256(通过Adafruit_CircuitPython_RSA)
- RS384/SHA-384(通过Adafruit_CircuitPython_RSA)
- RS512/SHA-512(通过Adafruit_CircuitPython_RSA)
从PyPI安装
在支持的GNU/Linux系统上,比如Raspberry Pi,可以在本地安装驱动程序from PyPI。要为当前用户安装:
pip3 install adafruit-circuitpython-jwt
要在系统范围内安装(在某些情况下可能需要这样做):
^{pr2}$要在当前项目的虚拟环境中安装:
mkdir project-name &&cd project-name python3 -m venv .env source .env/bin/activate pip3 install adafruit-circuitpython-jwt
使用示例
生成编码JWT
importadafruit_jwt# Import Private RSA key from a secrets.py filetry:fromsecretsimportsecretsexceptImportError:print("WiFi secrets are kept in secrets.py, please add them there!")raise# Create JWT Claimsclaims={"iss":"joe","exp":1300819380,"name":"John Doe","admin":True}# Generate JWT, sign with RSA private key and RS-256encoded_jwt=adafruit_jwt.JWT.generate(claims,secrets["private_key"],algo="RS256")print("Encoded JWT: ",encoded_jwt)
验证生成的JWT,编码的JWT。在
importadafruit_jwtdecoded_jwt=adafruit_jwt.JWT.validate(encoded_jwt)# The decoded JWT's JOSE header and claims set are returned as a tupleprint('JOSE Header: {}\nJWT Claims: {}'.format(decoded_jwt[0],decoded_jwt[1]))
贡献
欢迎投稿!请阅读我们的Code of Conduct 在帮助这个项目之前保持欢迎。在
文件
有关构建库文档的信息,请查看this guide。在
- 项目
标签: