新浪OAuth客户端登陆另辟蹊径

本文介绍了一种通过网页登录方式间接实现客户端登录的方法,利用获取Token替代直接密码验证,确保安全性的同时实现了客户端授权。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题记:这是一段七月份写的代码了,忘记有没有做过优化了,随便看看吧。

前言:当时七月份刚接触的时候,客户端登陆授权方式早就已经取消了,于是就考虑用网页登陆方式来间接模拟下吧,这样密码也安全点,无非就是拿个Token嘛。

使用哪一家的SDK相信您可以看出来偷笑

//先上代码吧
myOuth = new NetDimension.Weibo.OAuth(AppKey, AppSecret, Properties.Settings.Default.CallbackUrl );
OuthWeb myWeb = new OuthWeb(myOuth.GetAuthorizeURL());						//传入获取授权地址
myWeb.callBakUrl = myOuth.CallbackUrl;
myWeb.fatherFrm = this; 									//向子窗口传递父窗口,用于写入返回值
myWeb.ShowDialog();
myOuth.GetAccessTokenByAuthorizationCode(AccToken); 						//请注意这里返回的是AccessToken对象,不是string
if (!string.IsNullOrEmpty(myOuth.AccessToken))
{
	Properties.Settings.Default.AcessToken = myOuth.AccessToken;
	Properties.Settings.Default.Save(); 
	MessageBox.Show("授权成功", "恭喜^_^", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
	MessageBox.Show("AccessToken Failed!");
}

子窗口访问调用析构函数传参过来的URL,然后在页面完成时检测带回参的URL:

private void MainWeb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
	if (e.Url.ToString().IndexOf(callBakUrl) == 0)
	{
		string referUrl = e.Url.ToString();
		fatherFrm.AccToken =								//向父窗口写入AccessToken
                     referUrl.Substring(
                         referUrl.IndexOf("code") + 5
                     );               
                this.Close();
	}

}

这样就间接地实现了客户端登陆,跟模拟OAuth登陆有点区别。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值