Skip to content

isdnu/Android_Oauth_Demo

Repository files navigation

智慧山师 Android Oauth认证Demo

Demo简要说明:

Demo实现 oauth认证过程,实现自动登录和注销功能,认证部分说明 http://i.sdnu.edu.cn/open/oauth.aspx

Sdnuapi_1.1 接口说明:

	1
	startThread(Handler mHandler, String url, int flag, Activity activity)
	请求token , 获取数据的统一方法.
	Parameters:
	mHandler ,操作回调的 handler
	url ,操作的url ,请求 token时可以设置为null
	flag ,标识操作类型. Oauth.REQ_TOKEN,Oauth.METHOD,Oauth.ACC_TOKEN,
	activity ,
	2
	setOauthVerifier(String value)   
	从外部设置OauthVerifier 
	Parameters: 
	value  为callback url
	@true 
	为request token成功.
	3
	requestTokenUrl(boolean forcelogin)
	返回 request token url 
	Parameters: 
	forcelogin 是否强制登录 
	Returns: 
	返回智慧山师的用户授权地址
	4
	setToken(String tokenKey, String tokenSecret)
	将储存器保存的 token 使用该方法对Oauth进行设置
	Parameters: 
	tokenKey 
	tokenSecret 
	5
	getToken()
	返回内容格式 tokenKey&tokenSecret. 
	Returns: 
	tokenKey&tokenSecret格式

程序过程简要说明:

使用此demo前请先到智慧山师申请 consumerKey和consumerSecret,并使用该方法AppSDNU.setAppKey(consumerKey, consumerSecret)设置. 对于公共信息接口,只进行这个操作即可.下面部分为获取私有接口服务的授权操作.

1.执行autoLogin()方法

首先查看是否有存储的 token ,如果有
//设置token
Oauth.setToken(tokenKey,tokenSecret);
//做一个刷新操作
Oauth.startThread(mHandler,AppSDNU.get(Constants.BASE_URL) + AppSDNU.get(Constants.REF_URL),Oauth.METHOD,WelcomeActivity.this);
如果刷新返回的token与请求时token一致,则认为token有效,则直接登录.否则点击"进入登录页"按钮,进行 request token操作.

2.request token 操作

Oauth.startThread(mHandler, null,Oauth.REQ_TOKEN ,WelcomeActivity.this);
此时会获得 oauth_token,调用requestTokenUrl(boolean forcelogin) 方法,返回用户授权地址形如:
http://i.sdnu.edu.cn/oauth/authorize?oauth_token=11111111111111111111111111111111
调用 webview 访问该地址.登录成功会返回 callback地址,形如:
http://fakeurl.com/callback?from=isdnu#oauth_token=11111111111111111111111111111111&oauth_verifier=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
调用方法 Oauth.setOauthVerifier(url) ,设置 OauthVerifier. 接着执行Oauth.startThread(mHandler, null,Oauth.ACC_TOKEN,LoginActivity.this); 用 Request token 换取 Access Token , 认证成功之后 ,保存 token到储存器.用于自动登录.
String token = Oauth.getToken(); Utils.saveTokenValue(LoginActivity.this,token,Utils.TOKENVALUE,Context.MODE_PRIVATE);

3.注销操作

//置空操作,清空token对应的值.
Oauth.setToken("", "");
//清空储存密钥
Utils.saveTokenValue(MainActivity.this,"",Utils.TOKENVALUE, Context.MODE_PRIVATE);

About

Java SDK for i.sdnu.edu.cn

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages