用于管理Python中OSM OAuth 2.0登录的包。
项目描述
osm-login-python
用于管理Python中OSM OAuth 2.0登录的包。
📖 文档
使用pip安装
pip install osm-login-python
导入Auth并使用您的凭据初始化类
from osm_login_python.core import Auth
osm_auth=Auth(
osm_url=YOUR_OSM_URL,
client_id=YOUR_OSM_CLIENT_ID,
client_secret=YOUR_OSM_CLIENT_SECRET,
secret_key=YOUR_OSM_SECRET_KEY,
login_redirect_uri=YOUR_OSM_LOGIN_REDIRECT_URI,
scope=YOUR_OSM_SCOPE_LIST,
)
使用方法
提供了三个函数
-
login() -- 返回OSM的登录URL。
- 用户必须然后访问此URL并授权OAuth应用程序进行登录。
- 用户使用OSM登录成功后,将被重定向到配置的
login_redirect_uri
。 - 随后网页必须调用下面的
callback()
函数,将当前URL发送到该函数(其中包含OAuth授权码)。
-
callback() -- 返回编码和序列化的数据
user_data
是OSM用户数据的JSON格式。oauth_token
是OSM OAuth令牌的字符串。- 两者在作为URL使用时都经过编码和序列化,作为额外的安全措施。
-
deserialize_data() -- 从
callback()
返回解码和反序列化的数据。
[!NOTE] 此包主要旨在返回OSM用户数据。
也可以像上面描述的那样获取
oauth_token
,用于在安全的后端服务中对OSM API进行身份验证请求。在前端使用OAuth令牌时,请小心谨慎,并遵守最佳实践的安全措施,例如将其嵌入安全的httpOnly cookie中(不要存储在localStorage、sessionStorage或非安全cookie中)。
示例
在Django中
import json
from django.conf import settings
from osm_login_python.core import Auth
from django.http import JsonResponse
# initialize osm_auth with our credentials
osm_auth = Auth(
osm_url=YOUR_OSM_URL,
client_id=YOUR_OSM_CLIENT_ID,
client_secret=YOUR_OSM_CLIENT_SECRET,
secret_key=YOUR_OSM_SECRET_KEY,
login_redirect_uri=YOUR_OSM_LOGIN_REDIRECT_URI,
scope=YOUR_OSM_SCOPE,
)
def login(request):
login_url = osm_auth.login()
return JsonResponse(login_url)
def callback(request):
# Generating token through osm_auth library method
token = osm_auth.callback(request.build_absolute_uri())
return JsonResponse(token)
def get_my_data(request, serialized_user_data: str):
user_data = osm_auth.deserialize_data(serialized_user_data)
return JsonResponse(user_data)
-
Django集成示例在此 https://github.com/hotosm/fAIr/tree/master/backend/login
-
FastAPI集成示例在此 https://github.com/hotosm/export-tool-api/tree/develop/API/auth
版本控制
使用commitizen进行版本控制。
测试覆盖率
生成覆盖率徽章
pdm install
pdm run coverage run -m pytest
# pdm run coverage report
pdm run coverage coverage-badge -o docs/coverage.svg
贡献
欢迎贡献!
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码发行版
osm-login-python-2.0.0.tar.gz (17.3 kB 查看哈希值)
构建发行版
osm_login_python-2.0.0-py3-none-any.whl (17.1 kB 查看哈希值)
关闭
osm-login-python-2.0.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 01fa35402e1342820c725068f4e41c81dcce064e07058f8a206d98a8b6f04bb9 |
|
MD5 | 77478f089bf1f1e1b4f24f05cf27e5d5 |
|
BLAKE2b-256 | 71321aae4704a91d288157a8dcb27cd47ca3b3b16d714b3d695966dacc896e31 |
关闭
osm_login_python-2.0.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1289410fb1967f584ee52b02d96c85ff2cb104068481fa6530d5f3b138ec7afc |
|
MD5 | 658713e1e641583fd1cf05d8d3570ab2 |
|
BLAKE2b-256 | 4de14de4056c1b766149aaa5707b3e51b00f56d1fa37ba3d5bc797ec6625fb77 |