认证服务客户端

class arkid_client.AuthClient(base_url, service=None, authorizer=None, **kwargs)[源代码]

基类:arkid_client.base.BaseClient

认证客户端,用于向 ArkID 服务端请求授权认证信息,并获取访问令牌。

Examples

初始化 < AuthClient > 客户端,以 Access Token 授权方式向 ArkID 服务端 请求对调用的用户进行身份验证 (TODO)

>>> from arkid_client import AuthClient, AccessTokenAuthorizer
>>> ac = AuthClient(authorizer=AccessTokenAuthorizer('<token_string>'))

上述使用 oauth2.0 协议来请求授权,虽然 ArkID Client 暂时还不支持这样做。 但是,这里可以使用任何其它的符合规则的授权器。

class arkid_client.ConfidentialAppAuthClient(base_url, **kwargs)[源代码]

基类:arkid_client.auth.client.base.AuthClient

与 ArkID 认证服务端进行通信的 AuthClient 类型的认证客户端。 此客户端必须是已受到 ArkID 官方高度信任的第三方客户端,可凭借 usernamepassword 直接向 ArkID 认证端发起授权请求。 最终,它将得到 ArkID 官方默认的认证凭证 oneid_token

Methods

start_auth(username: str, password: str)[源代码]

开始进行身份认证 (POST /siteapi/v1/ucenter/login/)

Parameters

username (string)
用户唯一标识
password (string)
密码

Examples

>>> caac = arkid_client.ConfidentialAppAuthClient(...)
>>> caac.start_auth(username, password)
get_token()[源代码]

获取 oneid_token

Examples

>>> caac = arkid_client.ConfidentialAppAuthClient(...)
>>> caac.start_auth('<username>', '<password>')
>>> token = caac.get_token()
auth_to_get_token(_username: str, _password: str)[源代码]

简化 oneid_token 的获取流程,大多数时候比传统的获取方式更轻松。 (POST /siteapi/v1/ucenter/login/)

Parameters

username (string)
用户唯一标识
password (string)
密码

Examples

>>> caac = arkid_client.ConfidentialAppAuthClient(...)
>>> token = caac.auth_to_get_token(_username, _password)
revoke_token(authorizer: arkid_client.authorizers.basic.BasicAuthorizer)[源代码]

撤销 oneid_token (POST /siteapi/v1/revoke/token/)

Parameters

authorizer (BasicAuthorizer)
特指 < BasicAuthorizer > 类型的授权器

Examples

>>> caac = arkid_client.ConfidentialAppAuthClient(...)
>>> token = caac.revoke_token(authorizer)
auth_token(authorizer: arkid_client.authorizers.basic.BasicAuthorizer)[源代码]

校验 oneid_token 所代表的用户是否有某特定权限 (GET /siteapi/v1/auth/token/)

Parameters

authorizer (BasicAuthorizer)
特指 < BasicAuthorizer > 类型的授权器

Examples

>>> caac = arkid_client.ConfidentialAppAuthClient(...)
>>> token = caac.auth_token(authorizer)
get_authorizer(username: str, password: str)[源代码]

封装 self.auth_to_get_token 方法, 通过认证客户端直接获得有效的授权器。 (GET /siteapi/v1/ucenter/login/)

Parameters

username (string)
用户唯一标识
password (string)
密码

Examples

>>> caac = arkid_client.ConfidentialAppAuthClient(...)
>>> authorizer = caac.get_authorizer(username, password)