xzphp域名授权系统_OAuth2授权中转URL

60e3dfdda38e804e9db074ee607167ff.png

33df026dbcaf10d65a561cd83cccd853.png

Web或H5中使用OAuth2授权机制来获取第3方平台用户基础信息,进而实现业务逻辑,这是现在比较流行的做法(基本上OAuth已经成为开放授权事实上的标准了)。

对接第3方平台OAuth2用户授权功能时,首先需要在第3方开放平台中填写授权回调域名,一般允许用户填写的授权回调域名都有数量限制(通常为1个),这就造成我们在开发和正式环境中需要来回更改第3方开放平台中授权回调域名。

本文主要讲解如何创建OAuth2授权回调中转URL

中转URL:该URL主要将第3方平台OAuth2用户授权重定向时传递的code参数以及其他Query参数一起传递给应用的最终回调URL上。因此我们只需要将第3方开放平台中授权回调域名固定为该URL所在域名即可。

HTML + JS实现

思路:创建一个纯静态HTML文件,该URL接收一个redirect_uri参数指向应用最终回调URL,通过JavaScript获取redirect_uri值作为最终回调URL并获取其他参数拼接到最终回调URL上,最后重定向到最终回调URL上。

优势:1). 无需后端服务器进行解析,系统开销小 2). 可以直接将该HTML文件上传到外部平台,对外部平台无任何破坏性

调用方式:

  1. 假设中转URL为: https://codebays.com/oauth.html,应用最终回调URL为:https://codebays.com/oauth2/callback。
  2. 第3方开放平台授权回调域名固定为http://codebays.com即可。
  3. 构建OAuth2用户授权URL时,参数redirect_uri的值填入:https://codebays.com/oauth.html?redirect_uri=urlencode(https://codebays.com/oauth2/callback)

代码如下:

187d004834d3f58e11662c593f17c4b9.png

Nginx + Lua 实现

思路:Nginx安装LuaJIT扩展(可以直接安装Openresty),Nginx配置文件中配置一个虚拟location(指向路径/oauth.html),虚拟location使用lua脚本来实现rewrite。

优势:1). Nginx+Lua直接解析并重定向,系统开销小

Nginx配置参数如下:

2dc2f4e0c15c067d7699adb839f91001.png

oauth.lua代码如下:

4b051eba3151ca4f94804b7098af09c9.png

Openresty是一个基于Nginx和Lua的高性能Web平台,用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

【web说】不局限于web知识分享。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值