from IPython.display import MarkdownOAuth
有关如何使用的说明,请参阅文档页面。
GoogleAppClient (Google 应用客户端)
GoogleAppClient (client_id, client_secret, code=None, scope=None, project_id=None, **kwargs)
一个用于 Google OAuth2 的 WebApplicationClient
GitHubAppClient (GitHub 应用客户端)
GitHubAppClient (client_id, client_secret, code=None, scope=None, **kwargs)
一个用于 GitHub OAuth2 的 WebApplicationClient
HuggingFaceClient (HuggingFace 客户端)
HuggingFaceClient (client_id, client_secret, code=None, scope=None, state=None, **kwargs)
一个用于 HuggingFace OAuth2 的 WebApplicationClient
DiscordAppClient (Discord 应用客户端)
DiscordAppClient (client_id, client_secret, is_user=False, perms=0, scope=None, **kwargs)
一个用于 Discord OAuth2 的 WebApplicationClient
Auth0AppClient (Auth0 应用客户端)
Auth0AppClient (domain, client_id, client_secret, code=None, scope=None, redirect_uri='', **kwargs)
一个用于 Auth0 OAuth2 的 WebApplicationClient
# cli = GoogleAppClient.from_file('client_secret.json')WebApplicationClient.login_link (Web 应用客户端.登录链接)
WebApplicationClient.login_link (redirect_uri, scope=None, state=None, **kwargs)
获取此客户端的登录链接
通过 client.login_link() 生成一个登录链接,该链接会将用户发送到 OAuth 提供商。
有时,将状态(state)传递给 OAuth 提供商会很有用,这样当用户返回时,您可以从他们离开的地方继续。这可以通过传递 state 参数来完成。
from fasthtml.jupyter import *redir_path = '/redirect'
port = 8000app,rt = fast_app()
server = JupyUvi(app, port=port)redir_url (重定向网址)
redir_url (request, redir_path, scheme=None)
获取 request 中主机的重定向 URL
@rt
def index(request):
redir = redir_url(request, redir_path)
return A('login', href=cli.login_link(redir), target='_blank')_AppClient.parse_response (_应用客户端.解析响应)
_AppClient.parse_response (code, redirect_uri)
从 OAuth2 服务器响应中获取令牌(token)
_AppClient.get_info (_应用客户端.获取信息)
_AppClient.get_info (token=None)
获取已认证用户的信息
_AppClient.retr_info (_应用客户端.取回信息)
_AppClient.retr_info (code, redirect_uri)
结合了 parse_response 和 get_info
@rt(redir_path)
def get(request, code:str):
redir = redir_url(request, redir_path)
info = cli.retr_info(code, redir)
return P(f'Login successful for {info["name"]}!')# HTMX()server.stop()_AppClient.retr_id (_应用客户端.取回 ID)
_AppClient.retr_id (code, redirect_uri)
调用 retr_info,然后返回 id/subscriber(订阅者)值
通过提供商登录后,用户将被重定向回提供的重定向 URL。对此 URL 的请求将包含一个 code 参数,用于获取访问令牌并抓取用户的个人资料信息。请参阅这里的说明以获取一个实际示例。您可以选择:
- 使用 client.retr_info(code) 获取所有个人资料信息,或者
- 使用 client.retr_id(code) 仅获取用户的 ID。
在调用这两个方法中的任意一个之后,您还可以通过 client.token["access_token"] 访问访问令牌(例如,用于撤销访问权限)。
url_match (URL 匹配)
url_match (url, patterns=('^(localhost|127\\.0\\.0\\.1)(:\\d+)?$',))
OAuth
OAuth (app, cli, skip=None, redir_path='/redirect', error_path='/error', logout_path='/logout', login_path='/login', https=True, http_patterns=('^(localhost|127\\.0\\.0\\.1)(:\\d+)?$',))
初始化 self。请参阅 help(type(self)) 以获取准确的签名。
Google 辅助工具
GoogleAppClient.consent_url (Google 应用客户端.授权同意 URL)
GoogleAppClient.consent_url (proj=None)
获取 Google OAuth 同意屏幕的 URL
GoogleAppClient.consent_url (Google 应用客户端.授权同意 URL)
GoogleAppClient.consent_url (proj=None)
获取 Google OAuth 同意屏幕的 URL
Credentials.update (凭据.更新)
Credentials.update ()
如果凭据已过期,则刷新凭据并返回它们
Credentials.update (凭据.更新)
Credentials.update ()
如果凭据已过期,则刷新凭据并返回它们
Credentials.save (凭据.保存)
Credentials.save (fname)
将凭据保存到 fname
Credentials.save (凭据.保存)
Credentials.save (fname)
将凭据保存到 fname
load_creds (加载凭据)
load_creds (fname)
从 fname 加载凭据
GoogleAppClient.creds (Google 应用客户端.凭据)
GoogleAppClient.creds ()
根据客户端创建 Credentials,如果需要则刷新
GoogleAppClient.creds (Google 应用客户端.凭据)
GoogleAppClient.creds ()
根据客户端创建 Credentials,如果需要则刷新