import { GetTokenParams, TokenResponse } from './TokenCredential'; import { BaseTokenCredential } from './TokenSessionCredential'; export interface UserAuthCredentialOptions { /** * 应用 ID * * 可使用扫码登录应用或者第三方个人小程序的 appId。 * * - 企业内部应用传应用的 AppKey * - 第三方企业应用传应用的 SuiteKey * - 第三方个人应用传应用的 AppId */ clientId?: string; /** * 应用密钥 * * 企业内部应用传应用的 AppSecret * 第三方企业应用传应用的 SuiteSecret * 第三方个人应用传应用的 AppSecret */ clientSecret?: string; } /** * 获取企业内部应用的授权凭证 * * @see https://open.dingtalk.com/document/orgapp/obtain-the-access_token-of-an-internal-app */ export declare class UserAuthCredential extends BaseTokenCredential { clientId?: string; clientSecret?: string; refreshToken?: string; constructor(params?: UserAuthCredentialOptions); exchangeCode(code: string): Promise; getToken(params: UserGetTokenParamsWithCode): Promise; getToken(params: UserGetTokenParamsWithRefreshToken): Promise; } export interface UserTokenResponse extends TokenResponse { /** * 所选企业 corpId */ corpId: string; /** * 刷新令牌 */ refreshToken: string; } export interface UserGetTokenParamsBase extends UserAuthCredentialOptions, GetTokenParams { /** * 临时授权码 * * OAuth 2.0 临时授权码,根据获取登录用户的访问凭证内容,获取临时授权码authCode。 * * @see https://open.dingtalk.com/document/orgapp/obtain-identity-credentials */ code?: string; /** * 刷新令牌 */ refreshToken?: string; /** * 授权方式 * * 如果使用授权码换 token,传 authorization_code。 * 如果使用刷新token换用户token,传refresh_token。 */ grantType?: string; } export interface UserGetTokenParamsWithCode extends UserGetTokenParamsBase { code: string; grantType?: 'authorization_code'; } export interface UserGetTokenParamsWithRefreshToken extends UserGetTokenParamsBase { refreshToken: string; grantType?: 'refresh_token'; } export type UserGetTokenParams = UserGetTokenParamsWithCode | UserGetTokenParamsWithRefreshToken;