java.lang.Object
org.miaixz.bus.auth.nimble.AbstractProvider
org.miaixz.bus.auth.nimble.twitter.TwitterProvider
- All Implemented Interfaces:
Provider,org.miaixz.bus.core.Provider
Twitter 登录提供者,支持 OAuth 1.0a 认证流程。 实现 Twitter 的单点登录,获取用户访问令牌和用户信息。
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Field Summary
Fields inherited from class org.miaixz.bus.auth.nimble.AbstractProvider
cache, complex, context -
Constructor Summary
ConstructorsConstructorDescriptionTwitterProvider(Context context) 使用默认缓存构造 Twitter 提供者。TwitterProvider(Context context, org.miaixz.bus.cache.metric.ExtendCache cache) 使用指定缓存构造 Twitter 提供者。 -
Method Summary
Modifier and TypeMethodDescription返回带状态参数的授权 URL,回调时会携带该状态。static StringgenerateNonce(int len) 生成指定长度的随机 nonce。getAccessToken(Callback callback) 将请求令牌转换为访问令牌(Access Token)。获取请求令牌(Request Token)。getUserInfo(AccToken accToken) 获取用户信息。static Stringsign(Map<String, String> params, String method, String baseUrl, String apiSecret, String tokenSecret) 生成 Twitter 签名。protected StringuserInfoUrl(AccToken accToken) 构造用户信息 URL。Methods inherited from class org.miaixz.bus.auth.nimble.AbstractProvider
accessTokenUrl, check, check, doGetAuthorizationCode, doGetRevoke, doGetUserInfo, doPostAuthorizationCode, getDefaultScopes, getRealState, getScopes, getScopes, login, refreshTokenUrl, responseError, revokeUrl
-
Constructor Details
-
TwitterProvider
使用默认缓存构造 Twitter 提供者。- Parameters:
context- 上下文配置
-
TwitterProvider
使用指定缓存构造 Twitter 提供者。- Parameters:
context- 上下文配置cache- 缓存实现
-
-
Method Details
-
generateNonce
生成指定长度的随机 nonce。- Parameters:
len- 长度- Returns:
- nonce 字符串
-
sign
public static String sign(Map<String, String> params, String method, String baseUrl, String apiSecret, String tokenSecret) 生成 Twitter 签名。 参考:https://developer.twitter.com/en/docs/basics/authentication/guides/creating-a-signature- Parameters:
params- 参数,包括 OAuth 头、查询参数、表单参数method- HTTP 方法baseUrl- 基础 URLapiSecret- API 密钥(可在开发者门户查看)tokenSecret- OAuth 令牌密钥- Returns:
- Base64 编码的签名字符串
-
authorize
返回带状态参数的授权 URL,回调时会携带该状态。- Specified by:
authorizein interfaceProvider- Overrides:
authorizein classAbstractProvider- Parameters:
state- 状态参数,用于防止 CSRF 攻击- Returns:
- 授权 URL
-
getRequestToken
获取请求令牌(Request Token)。 参考:https://developer.twitter.com/en/docs/twitter-for-websites/log-in-with-twitter/guides/implementing-sign-in-with-twitter- Returns:
- 请求令牌对象
-
getAccessToken
将请求令牌转换为访问令牌(Access Token)。 参考:https://developer.twitter.com/en/docs/twitter-for-websites/log-in-with-twitter/guides/implementing-sign-in-with-twitter- Parameters:
callback- 回调数据- Returns:
- 访问令牌对象
- See Also:
-
getUserInfo
获取用户信息。- Parameters:
accToken- 访问令牌- Returns:
- 用户信息对象
- Throws:
IllegalArgumentException- 如果解析用户信息失败- See Also:
-
userInfoUrl
构造用户信息 URL。- Overrides:
userInfoUrlin classAbstractProvider- Parameters:
accToken- 访问令牌- Returns:
- 用户信息 URL
-