资料
步骤
用百度ID登录开发者平台


新建应用 在应用设置里面设置社会化服务的回调地址

在社会化服务里面设置PC端JS组件设置

copyjs到登录页面。编写第三方验证成功之后的回调逻辑。
##回调逻辑
你点击第三方登录图标的时候,是会发起一个请求
authorize,获取Authorization Code,授权方式介绍这里面的第一步的请求。1.1 参数说明
client_id:必须参数,注册应用时获得的API Key。 response_type:必须参数,此值固定为“code”。 media_type:必须参数,需要登录的社会化平台标识,具体参数定义可以参考“《支持的社会化平台》”一节。 redirect_uri:必须参数,授权后要社会化服务回跳的URI,即接收Authorization Code的URI。对于无Web Server的应用,其值可以是“oob”,此时用户同意授权后,授权服务会将Authorization Code直接拼接在响应页面的URL参数中。如果redirect_uri不为"oob",则redirect_uri指向的页面必须与开发者在“社会化登录服务”中所填写的"社会化服务回跳地址"相匹配。 state:非必须参数,用于保持请求和回调的状态,授权服务器在回调时(重定向用户浏览器到“redirect_uri”时),会在Query Parameter中原样回传该参数。建议开发者利用state参数来防止CSRF攻击。 display:非必须参数,登录和授权页面的展现样式,默认为”page”,具体参数定义可以参考“《授权页面样式》”一节。 client_type:非必须参数,用来标识请求来源于哪一个客户端。如果在请求中传递了该参数,则可以在开发者中心应用管理中查看到相关统计数据。client_type的值可为“ios”、”android”、”web”中的任意一种。请求会回调你在百度开发者和代码参数里面设置的那个
redirect_uri地址在
redirect_uri的服务端捕获code参数,然后发送token登录请求.授权方式介绍这里面的第二步的请求。请求参数
grant_type:必须参数,此值固定为“authorization_code”; code:必须参数,通过上面第一步所获得的Authorization Code; client_id:必须参数,应用的API Key; client_secret:必须参数,'应用的Secret Key; redirect_uri:必须参数,该值必须与获取Authorization Code时传递的“redirect_uri”保持一致。返回参数
access_token:要获取的Access Token; expires_in:Access Token的有效期,以秒为单位; media_type:用户登录的社会化平台标识; media_uid:用户在“media_type”代表的社会化平台上的唯一uid/openid; social_uid:用户在百度社会化服务当中分配的唯一用户id; name:用户名; session_key:基于http调用Social API时所需要的Session Key,其有效期与Access Token一致; session_secret:基于http调用Social API时计算参数签名用的签名密钥。5.1 media_type说明
* baidu:百度。 * sinaweibo:新浪微博。 * qqdenglu:QQ账号登录。 * qqweibo:腾讯微博。 * renren:人人网。 * kaixin:开心网。得到唯一的
social_uidid之后,关联到用户表做好绑定关系。
隐式登录设计
对原有用户表的一个扩充,加入了一个第三方登录绑定表(用户表ID,平台类别,平台主键,平台用户名,访问授权码)等。
当登录的时候 首先查询平台主键是否有关联用户表ID
如果有 查询出用户表ID 然后调用正常的登录方法,
如果没有,就新增用户,
然后继续调用正常的登录方法
官网例子
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<H1>欢迎光临</H1>
<div>
请您使用第三方平台账号登陆:
<span id="login"></span>
</div>
<script type="text/javascript" id="bd_soc_login_boot"></script>
<script type="text/javascript">
(function(){
var t = new Date().getTime(),
script = document.getElementById("bd_soc_login_boot"),
redirect_uri = encodeURIComponent("http://test.duapp.com/social/oauth/callback"),
domid = "login",
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&size=-1&button_type=2&client_id=NKqWqr6T7NbDv8vkoKMBEmbu&view=embedded&t=" + t;
script.src = src;
})();
</script>
</body>
</html>