天天看點

使用 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>

繼續閱讀