简单做了一个sina微博的MVC第三方登陆
实现的效果是通过第三方sina登陆获取用户信息
现在我们讲述一下认证的步骤
1、第一步先获取sina认证的appkey,appSecret在地址http://open.weibo.com/wiki/中获取,在获取appkey,appSecret的时候同时还要设置RedrictURL
2、获取appkey,appSecret之后并且设置你的redirectURL现在我们就来获取code
string code = "";var ur = Request.Url;string mur = ur.ToString();var oauth = new NetDimension.Weibo.OAuth("your appkey ", "your appSecret");oauth.CallbackUrl = "redirectURL";if (mur.IndexOf("code") < 0){var url = oauth.GetAuthorizeURL();// Response.Redirect(url);ViewBag.URL = url;}
code返回的形式是your redirectURL&code的形式返回的例子http://****?code=asdsxxx,code后面的就是你获取access_token所要的code
3、获取access_token
code = mur.Substring(mur.IndexOf("code") + 5, mur.Length - mur.IndexOf("code")-5);WeiboParameter[] webpara = new WeiboParameter[] { new WeiboParameter("client_id","3487061422"),new WeiboParameter("redirect_uri", "your redirect_url"),new WeiboParameter("client_secret","appSecret"),new WeiboParameter("code", code),//此code是上面获取的codenew WeiboParameter("grant_type", "authorization_code")};//设置为默认值就这样写不要改动Client mClient = new Client(oauth);AccessToken aToken = oauth.GetAccessTokenByAuthorizationCode(code);//这就是我们需要的access——tokensaveCookies("ExpiresIn", aToken.ExpiresIn.ToString());// saveCookies("RefreshToken", aToken.RefreshToken.ToString());saveCookies("Token", aToken.Token.ToString());saveCookies("UID", aToken.UID.ToString());
public class AccessToken{[JsonProperty(PropertyName = "access_token")]public string Token{get; set;}[JsonProperty(PropertyName = "expires_in")]public int ExpiresIn{get; set;}[JsonProperty(PropertyName = "uid")]public string UID{get; set;}[JsonProperty(PropertyName = "refresh_token")]public string RefreshToken { get; set; }}
4、获取信息,下面我们先看一下获取用户信息的接口http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3_V2这是api文档,获取用户信息的接口是http://open.weibo.com/wiki/2/users/show,
由截图我们可以看到这个用oauth2.0的话只需要access_token和uid即可
WeiboParameter[] webpara1 = new WeiboParameter[] { new WeiboParameter("access_token", aToken.Token), new WeiboParameter("uid",aToken.UID) };string content = mClient.GetCommand("https://api.weibo.com/2/users/show.json", webpara1);var dynamicJson1 = DynamicJson.Parse(content);muser.id = dynamicJson1.id;muser.screen_name = dynamicJson1.screen_name;muser.name = dynamicJson1.name;muser.province = dynamicJson1.province;muser.location = dynamicJson1.location;
就这样获取用户信息的例子完成了,这个看明白的话其他的第三方认证都是采用oauth2规则,1、先获取code 2、在获取access_token 3、调用api接口就行了,
希望对大家有所帮助
转载于:https://www.cnblogs.com/win-and-first/archive/2012/10/23/sina_oauth_mvc.html
简单做了一个sina微博的MVC第三方登陆相关推荐
- wxpython问卷调查界面_自己做的一个简单的问卷调查系统
疫情期间,先来没事做,就简单的用ssm 写了一个问卷调查系统.用于我们学校得青协调查用. 这就是我做得一个首页的页面,首页做的比较简单嘻嘻. 因为刚接触ssm 框架,我首先的思路是先把整体的ssm框架 ...
- 基于JQuery做的一个简单的点击显示和隐藏的小Demo
最近新加入了一个公司,并接手到了一个新项目,是基于 Spring + Spring MVC + MyBatis 架构来搭建的,在公司领导的需求下修改功能,需要修改些修改些前端页面,原本很简单的就是一个 ...
- (简单课设)前端小白刚做的一个简单的移动端项目的分享和总结
前端小白刚做的一个简单的移动端项目的分享和总结 所用技术为简单的div+css 直接上图片 代码部分 小滴服务 接下来是企业项目部分 接下来是我的小滴部分 (另外两个部分内容非常简单,没必要粘贴代码了 ...
- java mysql点赞功能_用Java做一个类似于微博QQ空间点赞的功能-Fun言
点赞是一个互动性很强的功能,网站加入点赞可以增强用户之间的亲密度,可以利用点赞排出受欢迎文章或者其他的列表,所以今天教大家如何做一个类似于微博.QQ空间的点赞功能 需求分析: 首先要明确这个功能是需要 ...
- 自己做的一个超级简单的小游戏
自己做了一个简单的uniy3d小游戏 方向键控制一个小球躲避别的小球,撞到指定的墙胜利,被别的球撞到失败. 初学者练手 Player move Enemy move Islose_Trigger Sp ...
- 奶气萌娃的声音怎么做?一个简单的小方法,奶娃配音轻松拿捏
奶气萌娃的声音怎么做?一个简单的小方法,奶娃配音轻松拿捏 平时在刷短视频的时候,经常会看到可可爱爱的短视频,配音则是奶气萌娃的声音,着实可爱,萌化人心.那么,如果我们自己也想要做这种可爱的奶气萌娃的声 ...
- 程序基于MATLAB yalmip 开发,做了一个简单的微网优化调度模型,模型中含有蓄电池储能、风电、光伏等发电单元,程序运行结果良好
微网 优化调度 机组组合 YALMIP cplex 编程语言:MATLAB平台 主题:基于YALMIP 的微网优化调度模型 内容简介:程序基于MATLAB yalmip 开发,做了一个简单的微网优化调 ...
- android点击按钮弹出图片,用android做的一个简单的点击按钮显示图片的程序
其实,在这之前我已经做了一个点击按钮的小程序,只不过它只是用来在界面上显示一些文字或者是用一个对话框来显示内容.按理说,做显示图片应该是不会有太大的问题了,可是问题还是来了.在我把这些个问题解决之后, ...
- Sina微博应用开发指南
概述 API平台应用日益丰富,为了让开发者更容易了解开发流程:为了规范API的接口,需要制定开发规范:为了对开发者进行一些深层次的指导,让开发者怎样来最优的访问API接口,特此制定开发流程技术规范与指 ...
最新文章
- android帧动画实现方法之一
- Android 设计模式:(三)装饰者模式 —— 装饰对象
- 转换前台javascript传递过来的时间字符串到.net的DateTime
- MFC调用批处理文件(.bat)
- 2020年高等数学方法与提高(上海理工大学)学习笔记:常微分方程
- Envoy实现.NET架构的网关(一)静态配置与文件动态配置
- 控制台应用和空项目有什么区别_在公司做的项目和自己在学校做的有什么区别?...
- create-react-app教程-源码篇
- java base64编码的三种方式
- SpringBoot : BeanFactory
- MOSS项目开发 周记(第一周)
- 在树莓派上进行python编程_在树莓派上用Python控制LED
- VXLAN的广播域BD。
- Apache Pegasus 首次 Meetup 圆满落幕
- 彻底解决win10屏幕亮度无法调节
- JAVA 系列——包装类
- nginx平台初探(100%)
- python写qq群机器人怎么弄_python打造自由DIY 群聊机器人
- qt做标定软件_有什么很好的软件是用 Qt 编写的?
- 基于js实现页面图片消除