C# 微信接口开发-授权登录

作者:vkvi 来源:千一网络(原创) 日期:2016-12-8

微信授权登录遵循 OAuth 2.0 协议,可参见:OAuth 白话简明教程-授权码模式(Authorization Code)

这里贴个利用公众号接口,让微信用户登录我们网页的代码:

先用户点击按钮,跳转到微信登录,微信登录又跳转回来,这时带着一个重要的 code,通过这个 code 去获取用户信息等。

说明:

  • 要将跳转的网址的 IP 或域名先在微信的“授权回调页面域名”中配置,如果是测试公众号,则在“体验接口权限表”的“网页授权获取用户基本信息”中修改。
  • scope 有两个值可选:snsapi_base 只是获取用户的 openid,优点是用户不需要点击“确认登录”按钮,直接就进来了,完全无干扰,缺点是不能获取用户的头像等信息。snsapi_userinfo 优点是可以获取用户头像、昵称等,缺点是会弹出“该网页由XXX开发,向其提供以下权限即可继续操作”的界面,需要用户点一下确认按钮,当然这也是必要的,毕竟你要获取用户的更多信息,需要用户许可,不然用户隐私就随意泄露了。
  • state 是自己随机指定的值(上面的例子是写死的),上面例子中看不出有什么用,但如果是复杂应用,我们可能需要弄清每一次回调对应的是哪一个请求,或者我们为了保障 response_type=code 这一步请求是我们发出的,并不是其他网站伪造发起的,这就靠随机产生的 state 了。

关于 WebClient 请参见:ASP.NET 抓取网页内容-用 WebClient 轻松实现文件下载上传、网页抓取

关于 JSON 字符串与类的转换,请参见:C# 中处理 JSON

上面代码中 jsonString 除了用户的 openid,还有一个 access_token,我们可以凭这个 access_token 去获取用户信息(scope 为 snsapi_userinfo 时),这就是访问一个网页的事儿,简单。全部官方解释,请参见:http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html

你前面那位网友看了:每日小段(2013-07-20)

▲▲▲嘿,欢迎转载传播本站原创文章,尽量保留来源噢。▲▲▲

文章评论
赞助商们