public abstract class DefaultProvider extends Object implements Provider
| Modifier and Type | Field and Description |
|---|---|
protected Context |
context |
protected Complex |
source |
protected StateCache |
stateCache |
| Constructor and Description |
|---|
DefaultProvider(Context context,
Complex source) |
DefaultProvider(Context context,
Complex source,
StateCache stateCache) |
| Modifier and Type | Method and Description |
|---|---|
protected String |
accessTokenUrl(String code)
返回获取accessToken的url
|
static String |
appendIfNotContain(String str,
String appendStr,
String otherwise)
如果给定字符串
str中不包含appendStr,则在str后追加appendStr;
如果已包含appendStr,则在str后追加otherwise |
String |
authorize(String state)
返回带
state参数的授权url,授权回调时会带上这个state |
static void |
checkCode(Complex complex,
Callback callback)
校验回调传回的code
|
static void |
checkContext(Context context,
Complex source)
检查配置合法性 针对部分平台, 对redirect uri有特定要求 一般来说redirect uri都是http://,而对于facebook平台, redirect uri 必须是https的链接
|
protected void |
checkState(String state)
校验回调传回的state
|
protected String |
doGetAuthorizationCode(String code)
通用的 authorizationCode 协议
|
protected String |
doGetRevoke(AccToken token)
通用的post形式的取消授权方法
|
protected String |
doGetUserInfo(AccToken token)
通用的 用户信息
|
protected String |
doPostAuthorizationCode(String code)
通用的 authorizationCode 协议
|
protected abstract AccToken |
getAccessToken(Callback Callback)
获取access token
|
protected Normal.Gender |
getRealGender(com.alibaba.fastjson.JSONObject object)
获取用户的实际性别 华为系统中,用户的性别:1表示女,0表示男
|
protected String |
getRealState(String state)
获取state,如果为空, 则默认取当前日期的时间戳
|
protected abstract Object |
getUserInfo(AccToken token)
使用token换取用户信息
|
static boolean |
isHttpProtocol(String url)
是否为http协议
|
static boolean |
isHttpsProtocol(String url)
是否为https协议
|
static boolean |
isLocalHost(String url)
是否为本地主机(域名)
|
static boolean |
isSupportedAuth(Context context,
Complex source)
是否支持第三方登录
|
Message |
login(Callback Callback)
统一的登录入口 当通过
authorize(String)授权成功后,会跳转到调用方的相关回调方法中
方法的入参可以使用AuthCallback,AuthCallback类中封装好了OAuth2授权回调所需要的参数 |
static String |
parseMapToString(Map<String,Object> params,
boolean encode)
map转字符串,转换后的字符串格式为
xxx=xxx&xxx=xxx |
static Map<String,Object> |
parseQueryToMap(String url)
将url的参数列表转换成map
|
static Map<String,String> |
parseStringToMap(String accessTokenStr)
string字符串转map,str格式为
xxx=xxx&xxx=xxx |
Map<String,String> |
parseStringToMap(String str,
boolean decode)
字符串转map,字符串格式为
xxx=xxx&xxx=xxx |
protected String |
refreshTokenUrl(String refreshToken)
返回获取accessToken的url
|
protected String |
revokeUrl(AccToken token)
返回获取revoke authorization的url
|
static byte[] |
sign(byte[] key,
byte[] data,
String algorithm)
签名
|
static String |
urlDecode(String value)
解码
|
static String |
urlEncode(String value)
编码
|
protected String |
userInfoUrl(AccToken token)
返回获取userInfo的url
|
protected Context context
protected Complex source
protected StateCache stateCache
public DefaultProvider(Context context, Complex source, StateCache stateCache)
public static boolean isSupportedAuth(Context context, Complex source)
context - contextsource - sourcepublic static boolean isHttpProtocol(String url)
url - 待验证的urlpublic static boolean isHttpsProtocol(String url)
url - 待验证的urlpublic static boolean isLocalHost(String url)
url - 待验证的urlpublic static String urlEncode(String value)
value - strpublic static String urlDecode(String value)
value - strpublic static byte[] sign(byte[] key,
byte[] data,
String algorithm)
key - keydata - dataalgorithm - algorithmpublic static void checkContext(Context context, Complex source)
context - contextsource - sourcepublic static void checkCode(Complex complex, Callback callback)
v1.10.0版本中改为传入source和callback,对于不同平台使用不同参数接受code的情况统一做处理
complex - 当前授权平台callback - 从第三方授权回调回来时传入的参数集合public static String appendIfNotContain(String str, String appendStr, String otherwise)
str中不包含appendStr,则在str后追加appendStr;
如果已包含appendStr,则在str后追加otherwisestr - 给定的字符串appendStr - 需要追加的内容otherwise - 当appendStr不满足时追加到str后的内容public static Map<String,String> parseStringToMap(String accessTokenStr)
xxx=xxx&xxx=xxxaccessTokenStr - 待转换的字符串public static String parseMapToString(Map<String,Object> params, boolean encode)
xxx=xxx&xxx=xxxparams - 待转换的mapencode - 是否转码public static Map<String,Object> parseQueryToMap(String url)
url - 待转换的urlpublic Message login(Callback Callback)
authorize(String)授权成功后,会跳转到调用方的相关回调方法中
方法的入参可以使用AuthCallback,AuthCallback类中封装好了OAuth2授权回调所需要的参数protected abstract AccToken getAccessToken(Callback Callback)
Callback - 授权成功后的回调参数authorize(String)protected abstract Object getUserInfo(AccToken token)
token - token信息getAccessToken(Callback)protected Normal.Gender getRealGender(com.alibaba.fastjson.JSONObject object)
object - objprotected String accessTokenUrl(String code)
code - 授权码protected String refreshTokenUrl(String refreshToken)
refreshToken - refreshTokenprotected String userInfoUrl(AccToken token)
token - tokenprotected String revokeUrl(AccToken token)
token - tokenprotected String getRealState(String state)
state - 原始的stateprotected String doPostAuthorizationCode(String code)
code - code码protected String doGetAuthorizationCode(String code)
code - code码protected String doGetUserInfo(AccToken token)
token - token封装protected String doGetRevoke(AccToken token)
token - token封装protected void checkState(String state)
state - state一定不为空Copyright © 2020. All rights reserved.