最近做一个个人博客,其中的登陆模块我想使用第三方登陆来做。上网搜一下有好多例子,但是大多数都是一个网站的第三方登陆,如QQ、微博、人人,没有集成的组件,于是就在网上搜一下百度的apistore,百度果真没有让人失望。等我下载javascript版的sdk时,一盆冷水浇了下来,javascript版的sdk不可以下载,可能是网站出错的原因。不得已自己慢慢摸索,终于搞定了,下面我来分享一下这个插件,让后来人少走些弯路。【尼玛,百度api边的也太快了,半个月前做的例子,今天打开又不能用了。有花了一个多小时,才整出来,步骤进行调整】

看图

后面使用PC端js组件设置,并且复制设置的代码,代码如下

         <script src="~/Scripts/load/Baidu-Frontia-JS-1.0.0.js"></script>【这个js插件,下载一下第三方登陆的demo就有,复制下来】

<script type="text/javascript" id="bd_soc_login_boot"></script>
<pre id='some-msg'></pre>

下边的可以在pc端js组件中生成【这段js要放到页面最后面,加载完页面后再加载js,不然会出错】
<script type="text/javascript">
(function () {
var t = new Date().getTime(),
script = document.getElementById("bd_soc_login_boot"),
redirect_uri = encodeURIComponent("http://dongsheng.club/login/index"),
domid = "some-msg",
src = "http://openapi.baidu.com/social/oauth/2.0/connect/login?redirect_uri=" + redirect_uri + "&domid=" + domid + "&client_type=web&response_type=code&media_types=sinaweibo%2Cqqdenglu%2Cbaidu%2Cqqweibo%2Ckaixin%2Crenren&size=-1&button_type=4&client_id=LE3C0q1hxETmHDlbYtG9kSG9&view=embedded&t=" + t;
script.src = src;
})();
</script>

这个地址  http://dongsheng.club/login/index  是什么?看下图     【网址可以随便起】

【这是修改内容,地址与参数与上边的不一样,就不要在意这些细节了。

到这一步就会返回带有参数的地址了:http://www.xiaoyaodijun.com/home/index?code=98f82414bebb81958272acf07dc231ea&state=

这里面就code有点作用,state就不要在意了。这是需要看的讲解是:http://developer.baidu.com/wiki/index.php?title=docs/social/oauth

以及http://developer.baidu.com/wiki/index.php?title=docs/social/oauth/authorization

需要你再一次进行地址请求:

https://openapi.baidu.com/social/oauth/2.0/token?
grant_type=authorization_code&
code=ANXxSNjwQDugOnqeikRMu2bKaXCdlLxn&
client_id=Va5yQRHlA4Fq4eR3LT0vuXV4&
client_secret=0rDSjzQ20XUj5itV7WRtznPQSzr5pVw2&
redirect_uri=http%3A%2F%2Fwww.example.com%2Fsocial_oauth_redirect
这时获得的请求地址为:
{"expires_in":7776000,"access_token":"51.e30dc5d4575e775d9334598e3358c703.7776000.1447555359.2902756138-6643058","session_secret":"07dcf5527b21431af747a7d18120a960","session_key":"8aKDWNYK9XlGPx0Fqy+UnKGBCfHXhRbbSUzjTVoLD+bKhsEZlitbK1I1Bp7fWIBxreoVT9aa5428\/Bkzbho38pmDKEwC51AaoQ==","name":"\u900d\u9065\u5e1d\u541b","media_uid":"D2A253FCEBAB5B57EC2F122B3B80EFC2","social_uid":2902756138,"media_type":"qqdenglu"}
这里面有用的就是:access_token
后面的就没什么变化了

到此处,基本ok到了关键地方,此时网页也可以运行了,第三方登陆后,返回的url带有参数

这里面比较有用的东西是access_token=*********************需要提取出来,

登陆这个网站:http://developer.baidu.com/wiki/index.php?title=docs/social/api/list 获取

然后进行二次请求

你要的数据都在json中

百度apistore第三方登陆的更多相关文章

  1. 百度apistore第三方登陆使用说明

    最近做一个个人博客,其中的登陆模块我想使用第三方登陆来做.上网搜一下有好多例子,但是大多数都是一个网站的第三方登陆,如QQ.微博.人人,没有集成的组件,于是就在网上搜一下百度的apistore,百度果 ...

  2. 网站添加第三方登陆(PHP版)

    这两周正在写毕业设计,我做的是一个问答网站.先介绍一下这个网站:这是一个关于大学生在线问答的网站,类似知乎和百度知道,不过功能没有人家多,毕竟这个网站我一个人在做.网站部署在阿里云,网站包括API,W ...

  3. sau交流学习社区第三方登陆github--oauth来实现用户登录

    sau交流学习社区第三方登陆github--oauth来实现用户登录 最近在丰富nodejsBlog开发的“交流学习社区”(https://www.mwcxs.top)的其他功能以及修复一些bug. ...

  4. Oauth2.0 QQ&微信&微博实现第三方登陆

    一.写在前面 目前对于大多数的App或Web网站都支持有第三方登陆这个功能,用户可使用 QQ/ 微信/ 微博 帐号快速登录你的网站,降低注册门槛,为你的网站带来海量新用户.最近在新项目上刚好用到了,在 ...

  5. Django之第三方登陆模块

    Django之第三方登陆模块 前期准备 安装 django-allauth pip install django-allauth 注意,django-allauth 需要在 Django1.10以上版 ...

  6. QQ,微信第三方登陆

    感觉越是大公司的SDK越不好用,其实我也是一直在想为什么他们拿那么高的工资却干着不相应的事儿. 下面说下QQ和微信第三方登陆的一点坑 首先 (QQ互联)自带的sdk中  一个文件工程没有调用产生关联错 ...

  7. OAuth协议——PHP第三方登陆协议

    慕课网Badguy老师的良心课程! 总会有那种什么都不想干的时候,但现在的日子又不这么允许个人的放纵,我一般就只有这几个选择:看课程视频,看书,看小说..好像还是有可以做的事情.其中,看课程视频有点无 ...

  8. 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法

    今天讲讲利用微信oauth2实现第三方登陆的实现方法. 先说说前提吧! 首先你得是服务号,并且是经过认证的.这样微信会给你很多第三方接口的权限,如果是订阅号或者没有认证的服务号那就不用想了! 一开始你 ...

  9. C#网站实现QQ第三方登陆# C#快速开发教程

    C#网站实现QQ第三方登陆 说起在网站上面可以直接使用QQ登录功能大家并不陌生.但翻其官方提供的SDK包中却没有C#方向的. 但是我们有个牛人叫张善友,做了一个民间SDK.下面我们就是用他所写的SDK ...

随机推荐

  1. 华为OJ机试训练(一)

    题目1 -- 通过输入英文句子.将每一个单词反过来,标点符号顺序不变.非26个字母且非标点符号的情况就可以标识单词结束. 标点符号包含,.!? 比如输入:Hello, I need an apple. ...

  2. v​s​快​捷​键

    Ctrl+E,D ----格式化全部代码 Ctrl+A+K+FCtrl+E,F ----格式化选中的代码 Ctrl+K+FCTRL + SHIFT + B生成解决方案 Alt+B+B 或 F6 生成当 ...

  3. c++中参数传递和函数返回简析

    1.参数传递: 每次调用函数时,都会重新创建该函数所有的形参,此时所传递的实参将会初始化对应的形参.形参的初始化与变量的初始化一样. 非引用类型:如果形参具有非引用类型,则复制实参的值.普通的非引用类 ...

  4. BZOJ 2726: [SDOI2012]任务安排( dp + cdq分治 )

    考虑每批任务对后面任务都有贡献, dp(i) = min( dp(j) + F(i) * (T(i) - T(j) + S) ) (i < j <= N)  F, T均为后缀和. 与j有关 ...

  5. Map转Bean小工具

    public static <T> T converter(Map<String, Object> map, Class<T> clz) { T obj = nul ...

  6. JS一些小算术、1加到50、乘法口诀表、买鸡等

    //从1加到50 for (var a=1,i=0;a<51; a++) {i=a+i} document.write(i);//1加到50 var num=0; for(var i=1;i&l ...

  7. IP校验和

    #include <stdio.h> #include <unistd.h> #include <linux/if_ether.h> #include <li ...

  8. IOS 访问系统粘贴板

    粘贴板提供了一种核心OS特性,用于跨应用程序共享数据.用户可以跨应用来复制粘贴,也可以设置只在本应用中复制粘贴用来保护隐私. UIPasteboard类允许访问共享的设备粘贴板以及内容,下面代码返回一 ...

  9. MVC4,MVC3,VS2012+ entity framework Migration from Sqlserver to Mysql

    在开发的初期个人认为因VS与Sqlserver的配合很默契,即可以方便的实现Code First,又可以使用SqlServer Manager很漂亮的进行建模与变更,也许是个人的使用习惯MS的界面做的 ...

  10. scss + react + webpack + es6

    scss + react + webpack + es6 写在前面: 刚学习完慕课网里的一个幻灯片案例,自己加了刚学的react,两者结合.首先让大家看看效果 点击此处 你可以先用纯js实现上面的效果 ...