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
|
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 协议
|
static String |
generateDingTalkSignature(String secretKey,
String timestamp)
生成钉钉请求的Signature
|
static String |
generateElemeSignature(String appKey,
String secret,
long timestamp,
String action,
String token,
Map<String,Object> parameters)
生成饿了么请求的Signature
|
protected abstract AccToken |
getAccessToken(Callback Callback)
获取access token
|
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 Map<String,Object> |
parseQueryToMap(String url)
将url的参数列表转换成map
|
static Map<String,String> |
parseStringToMap(String accessTokenStr)
string字符串转map,str格式为
xxx=xxx&xxx=xxx |
protected String |
refreshTokenUrl(String refreshToken)
返回获取accessToken的url
|
protected String |
revokeUrl(AccToken token)
返回获取revoke authorization的url
|
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 String generateDingTalkSignature(String secretKey, String timestamp)
secretKey - 平台应用的授权密钥timestamp - 时间戳public static String urlEncode(String value)
value - strpublic static String urlDecode(String value)
value - strpublic static Map<String,String> parseStringToMap(String accessTokenStr)
xxx=xxx&xxx=xxxaccessTokenStr - 待转换的字符串public static Map<String,Object> parseQueryToMap(String url)
url - 待转换的urlpublic static boolean isHttpProtocol(String url)
url - 待验证的urlpublic static boolean isHttpsProtocol(String url)
url - 待验证的urlpublic static boolean isLocalHost(String url)
url - 待验证的urlpublic static String generateElemeSignature(String appKey, String secret, long timestamp, String action, String token, Map<String,Object> parameters)
代码copy并修改自:https://coding.net/u/napos_openapi/p/eleme-openapi-java-sdk/git/blob/master/src/main/java/eleme/openapi/sdk/utils/SignatureUtil.java
appKey - 平台应用的授权keysecret - 平台应用的授权密钥timestamp - 时间戳,单位秒 API服务端允许客户端请求最大时间误差为正负5分钟action - 饿了么请求的api方法token - 用户授权的tokenparameters - 加密参数public static boolean isSupportedAuth(Context context, Complex source)
context - contextsource - sourcepublic 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 - 从第三方授权回调回来时传入的参数集合protected abstract AccToken getAccessToken(Callback Callback)
Callback - 授权成功后的回调参数authorize(String)protected abstract Object getUserInfo(AccToken token)
token - token信息getAccessToken(Callback)public Message login(Callback Callback)
authorize(String)授权成功后,会跳转到调用方的相关回调方法中
方法的入参可以使用AuthCallback,AuthCallback类中封装好了OAuth2授权回调所需要的参数protected 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.