第四方授权实现方式

准备工作

  • 应用域名 http://dome.com + /page_10086
  • 第四方授权域名 http://auth.com + /three_auth/get
    • 如果只有一个公众号和一个授权域名的话,请通过 Nginx 转发 ~/three_auth/ 到第四方授权应用
  • 微信授权域名 http://wx.com + /auth

最终效果

  • 例如应用的页面 http://dome.com/page_10086 需要 微信登录后的用户信息
  • 请求 第四方授权.登录 后,返回到 http://dome.com/page_10086?token=xxxxx
  • Ajax 请求 第四方授权接口.获取授权用户信息 传入 Token 得到用户信息

微信授权说明

第四方授权开放接口

  • [POST] /three_auth/user 通过 Token 获取登录用户信息
  • [POST] /three_auth/get 请求获取 微信授权URL
    • [GET] /three_auth/set 微信授权后重定向到 URL 用于接收 code 和获取 微信授权用户信息 不开放
第四方授权接口流程说明 @ 获取授权URL
  • 接口 [POST] /auth/get
  • 请求参数
{
	appid : 'xxxxxx', // 应用ID,作用于区分应用,可定义应用域名授权 + 指定公众号
	return_url : 'http://dome.com/page_10086', // 返回URL 授权成功后返回的 URL
}
  • 响应参数
{
	oauth_url : 'http://wx.com/auth?return_url=http://auth.com/three_auth/set?return_url=http://dome.com/page_10086'
	// 格式:<微信授权URL>?return_url=<第四方授权接收URL>?return_url=<最终应用URL>
}
/**
 * 1. 前端通过获取的 oauth_url 直接跳转到微信授权
 * 2. 微信授权成功后,会返回 <第四方授权接收URL> 并且携带 <code>
 * 3. <第四方授权接收URL> 会通过 <code> 获取微信用户授权信息 <user_info> 
 * 4. <第四方授权接收URL> 会登录 <当前用户> 得到 <Token> 并且跳转到 <最终应用URL> 并且携带 <Token>
 */
  • 下面是前后端分离做法@适合任意域名授权发起域
前端 第四方授权 微信授权 用户确认 判断 URL 没有 Token 跳转 请求 授权URL 为什么不能直接 跳转,因为微信 授权是判断授权 发起域名是否公 众号配置的域名的 跳转微信授权 是否授权? 确认授权! 微信浏览器自带的 用户和微信授权流 返回 URL 带 Code 参数 这里就通过请求微信接口, 通过Code获取用户信息 返回并且携带 Token 前端 第四方授权 微信授权 用户确认

后记

  • 其他接口就不用说明了都是通过 Token 对第四方服务器进行操作
  • Token 记得设置具有时效性,最好 1小时
  • 如果不是前后端分离 Token 记得存储到 Session 中去
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值