- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
身份验证技术方案1身份认证流程-微校-腾讯
身份验证技术方案
身份验证技术方案
1、身份认证流程
1.1 账号密码验证身份
1.2 签名算法
1.2.1 签名生成的通用步骤
1.2.2 APP_KEY APP_SECRET
1.3 数据加密
2、身份认证接口
2.1 请求方式
2.2 请求参数
2.3 数据返回
3、附件
3.1 PHP 加解密
3.2 Java 加解密
1、身份认证流程
1.1 账号密码验证身份
身份认证是其他应用的基础 ,认证方 (即 :校方 )需要提供一个验证接口 ,具体身份绑定流程
如下 :
身份认证绑定步骤 :
学生在微信客户端打开应用 ,触发微信公众号授权 (授权页面提示授权给腾讯微校 )。
微信公众号授权后 ,回调跳转到微校身份绑定页面 ,输入校园账号 (例如学号 )以及相
应的密码 ,
微校页面数据发送到微校后台 (注:微校后台不会保存学生的账号和密码 ),微校后台把
对应的信息加密同时附上签名发送到认证方的认证接口 (认证方需提供校验接口)。
认证方验证签名、解密 ,验证学生身份 ,返回加密后的校验结果。
微校收到对应的验证消息 ,若成功则跳转到对应的应用页面 ,失败则做出相应提示。
1.2 签名算法
签名采用微信支付后端签名算法
1.2.1 签名生成的通用步骤
设所有发送或者接收到的数据为集合M ,将集合M内非空参数值的参数按照参数名ASCII码从小
到大排序 (字典序 ),使用URL键值对的格式 (即key1 value1key2 value2…)拼接成字符
串stringA。
特别注意以下重要规则 :
参数名ASCII码从小到大排序 (字典序 );
如果参数的值为空不参与签名 ;
参数名区分大小写 ;
验证调用返回或微信主动通知签名时 ,传送的sign参数不参与签名 ,将生成的签名与该
sign值作校验。
在stringA最后拼接上key得到stringSignTemp字符串 ,并对stringSignTemp进行MD5运算 ,再将
得到的字符串所有字符转换为大写 ,得到sign值signValue。
签名算法示例 (签名验证地址 ):
private static function sign($param_array){
$names = array_keys($param_array)
sort($names, SORT_STRING)
$item_array = array()
foreach ($names as $name){
$item_array[] = {$name}={$param_array[$name]}
}
$secret_key = APP_SECRET
$str = implode( , $item_array) . key= . $secret_key
return strtoupper(md5($str))
}
1.2.2 APP_KEY APP_SECRET
由微校生成 ,每个公众号拥有一对唯一的 APP_KEY 和 APP_SECRET 。
APP_KEY 和 APP_SECRET 与公众号的关系是一对一。也就是说 ,不同的公众号 ,访问同一个
身份认证接口 ,所用的 APP_KEY 跟 APP_SECRET 是不一样的。
1.3 数据加密
采用AES对称加密算法 (AES/CBC/ZeroPadding 128位模式 ),具体算法见附件。
KEY = APP_KEY
IV = APP_SECRET 前16位。
2、身份认证接口
2.1 请求方式
2.1 请求方式
身份验证接口采用 POST 的方式向认证方发送数据。
2.2 请求参数
原始数据 R :
{
card_number:3109005843,
password:helloworld,
app_key:APP_KEY,
nonce_s
文档评论(0)