个人网站集成qq登录的过程及一些坑

想着给自己的博客加评论功能,然后想着没登录也不太行,正好之前在公司实习有做过飞书集成相关的事情,于是就打算给自己的网站集成个qq登录。

过程繁琐,而且qq互联给的文档简陋,坑多,所以记录一下。

1.首先去qq互联申请一个app(前提已经有域名了,没域名申请不到)

此处有几个大坑,一个是网站名称一定要和你申请域名时备案的网站名称一样

然后就是提供方,是腾讯云就填腾讯云,是阿里云就填阿里云

另外就是回调域,这个通常就是在你自己的域名后加上一个路径,例如集成qq登录,就填一个http://www.[你自己的域名].com/qqlogin,这个后期会用来接收用户授权后回调的一些参数。

83dce100e726435a97ce9e40d372221b.png c57dffd1f2c148339c85445793a0feb1.png

另外一个最大的坑就是,你的网站主页必须要有qq登录的按钮!! 像下面这样,不然不会给你审核通过的,按钮在qq互联文档里有

841313b22069474cb3b221f51c5abf6c.png da17485ac285405bae3f5b02a2a2f19d.png

申请之后大概2-3天会发邮件通知有没有通过,最好一次过,像我在这一步直接耽误了半个月…

2.申请通过后拿到appId和appSecret就可以开始做集成了

fa6deb9eb13e4a7f84486ceb02acf8dd.png

给按钮绑定点击事件,访问文档里提到的这个链接,拼上参数,四个必填的,里面client_id就是申请通过的appId,redirect_uri就是之前申请时填写的回调域地址,一定要一样,不然用户没法授权。

现在这个点击事件,点击后会调到一个非常熟悉的授权页面,如下
0098dab588cf4eb8896fb2b153567145.png
0bd8989958594bd4bad86a6b6fb34454.png

然后用户点击头像授权,或者扫码,或者输入账号密码登录,就会跳转到我们写好的回调域的地址,并在后面带上coede

这个时候就需要我们在前端的路由里拿到这个code,并且走下一步

fc073650d3a844b0a1551d673857d4a1.png

下一步,用这个code带上appid , app_secret,去请求token,这一步要交给后端去做,我直接在前端请求会被跨域拦截,有大神可以尝试一下前端能不能拿到,

我个人前端收到code后,触发方法去请求后端,把这些需要的参数带给后端,然后让后端去发起请求获得access token,

然后这里有个坑,就是里面有个可选的参数,叫fmt,最好是填上,值为’json’,不然返回来的token是url的格式,还得用正则去处理

后端拿到token后就可以走第三步

3.用token拿到用户的openId,

b318aa9f177e441797de4bd1c9300bf3.png

和第二步一样的操作,而且从拿token开始,我的请求发起都在后端,前端可能会跨域拿不到(token就是)

4.用openid拿到用户信息

有了openId,基本上就ok了,可以去掉qq的开放api了,不过api很少,居然还有腾讯微博的api…

ad21f9a076424c2abd3793a4c1ded23f.png

也是一样的方式,参数是token, appid和 openid,就可以拿到用户的信息了,里面有网名,头像,年龄,城市一些基本信息,

然后后端可以存起来,顺便返回给前端,然后前端就可以做显示,或者存cookie都ok.

4d48b02ab19f4c4383218f7507c8a8bb.png

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
注意: 不需要很多的类库 全部下来只有三个文件 。一个类库和两个前台页面,你将类库放到AppCode下面。然后将账号绑定那一块注释掉就行了,或者将账号绑定部分换成你自己系统的。就可以了。程序报错可能是因为我在绑定账号那里用到了别的类,你注释掉就行了 ------------------------------------------------------------ 经过两天的努力 已经成功将QQ登录集成到了 城记网 上。感谢腾讯提供的帮助文档,和关键时刻给的技术支持。我的网站是asp.net写的,有需要的网友可以联系我。 呵呵。(尽管是垃圾站,只要你愿意,又有什么关系呢?) QQ Oauth 只提供PHP的接入demo ,针对 ASP.net 的只有一个网友开发的SDK包,下载地址还老打不开,后来我从CSDN上下载了一个,看了以后感觉太复杂了,我个人感觉做这么个小事情不需要搞个SDK出来,不如自己按帮助文档去写,这样自己写的方法灵活性就高一些,于是就按文档学习开发。其实文档写得很清晰,耐心一看就明白了。 不讲太多的郁闷的过程了,直接说解决办法。 办这个事情主要要知道下面几个事情。 两个重点(如下): 第一个重点:请求Token的步骤, 1:请求未授权的临时token。请求成功以后会转到QQ登录页面。 2:请求已授权的临时token。登陆成功以后获得。 3:请求已授权的Access token。 第二个重点:签名的算法。 签名的值计算有一个指定的规则,请参考腾讯开放社区帮助文档,这是最 好的资料。 注意点: 没有申请APPID和APPKEY的先去申请。 传递的每一参数都要URLENcode,注意是每一个,包括动态生成的签名。    参数之间是有顺序的,是升序排列的,无论有多少个,都要排序。    各个步骤之间是有关联的,下一步的提交往往需要上一步的返回参数。 我采取的文档结构: 总共三个文件 ,非常简单。 一个放在APPcode下面的类。用来发送请求和接待参数。 两个前台页面,主要是对类的调用。 下面把类的代码完全贴出,你知要一看见类,就知道怎么写前台页面了,很简单
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天长高了没1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值