天天看点

使用 Lua 完成 OAuth2 的身份验证

<b>本文讲的是使用 Lua 完成 OAuth2 的身份验证,</b>

<b></b>

我不会详细地去介绍一个PHP框架需要花多长时间才能给出一个基本响应,但如果我们将它和其他语言/框架进行比较,也许你就可以理解相关的差异。

以下是它所呈现的大致情景:

解除与Monolitic API之间的耦合关系。

改进认证次数和生成的访问/刷新令牌。

改进拒绝非法访问令牌和身份验证证书的次数。

改进身份验证访问令牌时的次数和重定向后再次向API发送请求的次数。

<a href="https://camo.githubusercontent.com/58b8a83c88626a4ba69924b65a88b9efb1a0fc25/68747470733a2f2f6d6f6c74696e2e636f6d2f66696c65732f6c617267652f363762303834633630623664306666" target="_blank"></a>

OpenResty (Nginx)

Lua scripts

Caching Layer (Redis)

这是一些配置的规则

<a href="https://camo.githubusercontent.com/c2351315e39e99f5b886d3777f746daa9fb40f7e/68747470733a2f2f6d6f6c74696e2e636f6d2f66696c65732f6c617267652f386233353961376232626164353561" target="_blank"></a>

我们设置了一些路由来处理不同用户的请求,你可以看到如下情况:

nginx.conf

So for each of those endpoints we have to:

check the authentication access token

get the authentication access token

... location ~/oauth/access_token { content_by_lua_file "/opt/openresty/nginx/conf/oauth/get_oauth_access.lua"; ... }

location /v1 { access_by_lua_file "/opt/openresty/nginx/conf/oauth/check_oauth_access.lua"; ... } ...

这是个不可思议的环节。我们需要编写两个lua脚本来做到这一点:

get_oauth_access.lua

check_oauth_access.lua

以下是我们在创建验证层时所用到的一些与Lua相关的有趣资源。

<b>原文发布时间为:2016年01月07日</b>

<b>本文来自云栖社区合作伙伴掘金,了解相关信息可以关注掘金网站。</b>

继续阅读