接入百度账号登录(用户登录授权)可以帮助熊掌号运营者们在搜索场景和百度app里识别当前已授权登录的百度用户,为用户提供更好的内容交互和服务体验。
以中关村在线为例,利用开发者平台完成用户登录授权的设置后,用户在中关村的熊掌号页面浏览到喜爱的商品时,无需跳转其他电商平台、无需切换账号,可以用百度账号直接下单、完成付款,简单流畅,一步到位。
如此吸引人的功能到底该如何实现呢?今天就为大家带来用户登录授权的操作详解,主要从总体介绍(平台实现角色)、开发设置&文档(设置什么)、用户登录授权的开发流程(静默授权、普通授权)、接入场景示例这四方面展开,希望能帮助到熊掌号的运营者们。
一、总体介绍
1)OAuth2.0
• Authorization Code
2)openid
• 每个百度账号针对每个熊掌号下唯一用户标识
• 同一个百度账号在不同熊掌号下openid不同
• 保留80字符长度
3)redirect_uri
• 授权回调地址
• state参数:重定向后会带上state参数。建议开发者利用state参数来防止CSRF攻击
• 如何做uri合法性验证?
二、开发设置
• 主要字段介绍(http://xiongzhang.baidu.com/open/wiki/chapter1/section1.0.html )
• 网页授权域名
• 填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头。多个域名间英文逗号分割
• 用于校验redirect_uri合法性:配置规范为全域名。例如:设置为xiongzhang.baidu.com,那么redirect_uri为http://xiongzhang.baidu.com/index.html 、 http://xiongzhang.baidu.com/login.html 合法。但http://baike.baidu.com 、 http://baijiahao.baidu.com 、 http://baidu.com 不合法,无法做用户登录授权
• 未填写或不合法时,授权页会报错展示:redirect_uri_mismatch
三、开发文档
文档地址:https://xiongzhang.baidu.com/open/wiki/chapter2/section2.0.html
开放平台邮件组:xzh-open@baidu.com
四、开发步骤
1、开发步骤-snsapi_base
snsapi_base授权说明:
• 仅获取用户的openid
• 无需用户授权页点击确认,用户无感知
调用方式:
1)引导用户到百度授权页
• https://openapi.baidu.com/oauth/2.0/authorize?response_type=code&scope=snsapi_base&client_id={开发者ID}&redirect_uri={授权后回跳地址}&state={STATE字段,非必填}&pass_no_login={非必填}
• pass_no_login字段说明:可设置为1: 代表启用,此时处理逻辑为当前无百度用户登录,直接跳过,回调code固定为not_login_user
• 授权页自动跳转到 redirect_uri/?code={授权码}&state=STATE
• code作为换取access_token的授权码,每次用户授权带上的code将不一样,code只能使用一次,10分钟未被使用自动过期
2)获取用户授权access_token(若code=not_login_user,则已表明无用户)
• https://openapi.baidu.com/oauth/2.0/token?grant_type=authorization_code&code={用户授权票据}&client_id={开发者ID}&client_secret={开发者密钥}&redirect_uri={与第一步里传参值保持一致}
• 返回openid
特别提醒:获取用户的OpenID无需用户同意,获取用户的基本信息则需用户同意。
2、开发步骤-snsapi_userinfo
snsapi_userinfo授权说明:
• 获取用户基本信息
• 需要用户授权页点击确认(首次),同一用户未来较长一段时间内再次进入无感知
调用方式:
1)引导用户到百度授权页
• https://openapi.baidu.com/oauth/2.0/authorize?response_type=code&scope=snsapi_userinfo&client_id={开发者ID}&redirect_uri={授权后回跳地址}&state={STATE字段,非必填}
• 用户点击授权(或最近一次授权有效期内),授权页跳转到 redirect_uri/?code={}&state=STATE
2)获取用户授权access_token
• https://openapi.baidu.com/oauth/2.0/token?grant_type=authorization_code&code={授权码}&client_id={开发者ID}&client_secret={开发者密钥}&redirect_uri={与第一步里传参值保持一致}
• 返回access_token,openid
3)查询用户基本信息
• https://openapi.baidu.com/rest/2.0/cambrian/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
特别提醒:获取用户的OpenID无需用户同意,获取用户的基本信息则需用户同意。
3、开发步骤-如何快速测试
平台提供的一个redirect_uri调试中间页,方便开发者测试按步操作(传参redirect_uri为oob)。
比如:https://openapi.baidu.com/oauth/2.0/authorize?response_type=code&scope=snsapi_userinfo&client_id=EVDSEBHpqe0oQI8eFCCG8SFXwxVzSGEP&redirect_uri=oob
五、接入场景示例
本系列课程从开发接入角度讲解开发者平台基础能力,主要有3部分:运营能力、账号授权、JS-SDK接入。
今天继续第二部分的内容:如何接入百度账号登录(用户登录授权)。
这一课能帮助大家在搜索场景和百度app里识别当前登录百度用户,提供更好的内容交互和服务体验。
天青教育SEO培训学院专注SEO实战培训、SEO专业培训、SEO系统培训、seo网络培训、SEO排名优化培训。 如果你喜欢《熊掌号如何接入用户登录授权(视频教程)》,可以把他分享给你的朋友和同行,让他们也能从中受益,他们会对你的无私表示感谢。下一篇: 熊掌号开发者平台介绍(视频教程)