跳转到主要内容

用于管理Python中OSM OAuth 2.0登录的包。

项目描述

osm-login-python

用于管理Python中OSM OAuth 2.0登录的包。

📖 文档

pre-commit.ci status

coverage badge

使用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,
)

使用方法

提供了三个函数

  1. login() -- 返回OSM的登录URL。

    • 用户必须然后访问此URL并授权OAuth应用程序进行登录。
    • 用户使用OSM登录成功后,将被重定向到配置的login_redirect_uri
    • 随后网页必须调用下面的callback()函数,将当前URL发送到该函数(其中包含OAuth授权码)。
  2. callback() -- 返回编码和序列化的数据

    • user_data 是OSM用户数据的JSON格式。
    • oauth_token 是OSM OAuth令牌的字符串。
    • 两者在作为URL使用时都经过编码和序列化,作为额外的安全措施。
  3. 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)

版本控制

使用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 查看哈希值)

上传时间 Python 3

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面