Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go-auth-reverse-proxy

go-auth-reverse-proxy 是一款使用 Go 語言開發的輕量級反向代理伺服器,具備授權驗證機制。它透過 Bearer Token 驗證保護後端服務,僅允許授權使用者存取。這款工具適合用於開發、內網服務保護或作為 API Gateway 的前置防線。

  • 作為私人 Ollama 部署的 API 服務調用驗證機制,go-auth-reverse-proxy 確保資源不會暴露於公共網絡中,從而保護敏感數據和應用程式。

Quick Start

Init

go run main.go init

Add New User

go run main.go add -name=user

List tokens

go run main.go list

Run Auth Reverse Proxy

go run main.go run -port=80 -proxy=http://localhost:8080

Deploy on Docker

Windows(PowerShell)

$Env:AuthPort = 80
$Env:ProxyPort = 8080

# create container
docker run -d `
--name "auth-proxy-${Env:AuthPort}-to-${Env:ProxyPort}" `
-p "${Env:AuthPort}:80" `
-e "PROXY=http://host.docker.internal:${Env:ProxyPort}" `
--restart unless-stopped `
alsk1369854/go-auth-reverse-proxy

# show token list
docker exec -it auth-proxy-${Env:AuthPort}-to-${Env:ProxyPort} ./app list

# track logs
docker logs -f auth-proxy-${Env:AuthPort}-to-${Env:ProxyPort}

MacOS

export AuthPort=80
export ProxyPort=8080

# create container
docker run -d \
--name auth-proxy-${AuthPort}-to-${ProxyPort} \
-p ${AuthPort}:80 \
-e PROXY_URL=http://host.docker.internal:${ProxyPort} \
--restart unless-stopped \
alsk1369854/go-auth-reverse-proxy

# show token list
docker exec -it auth-proxy-${AuthPort}-to-${ProxyPort} ./app list

# track logs
docker logs -f auth-proxy-${AuthPort}-to-${ProxyPort}

Linux

export AuthPort=80
export ProxyPort=8080

# create container
docker run -d \
--name auth-proxy-${AuthPort}-to-${ProxyPort} \
--network=host \
-e PROXY_URL=http://localhost:${ProxyPort} \
--restart unless-stopped \
alsk1369854/go-auth-reverse-proxy

# show token list
docker exec -it auth-proxy-${AuthPort}-to-${ProxyPort} ./app list

# track logs
docker logs -f auth-proxy-${AuthPort}-to-${ProxyPort}

Dev

Run Test API Server

docker run -d \
--name py-test-server \
-p 8080:80 \
--restart unless-stopped \
alsk1369854/py-test-server

# Test API
curl http://localhost:8080/

Run Auth Reverse Proxy

go run main.go init
go run main.go list
go run main.go run -port=80 -proxy=http://localhost:8080

Test Auth

export token=<token>

# Test1
# 未授權
curl http://localhost/
# 已授權
curl -H "Authorization: Bearer $token" http://localhost/

# Test2
# 未授權
curl http://localhost/user
# 已授權
curl -H "Authorization: Bearer $token" http://localhost/user

# Test3
# 未授權
curl http://localhost/user/1
# 已授權
curl -H "Authorization: Bearer $token" http://localhost/user/1

About

go-auth-reverse-proxy 是一款使用 Go 語言開發的輕量級反向代理伺服器,具備授權驗證機制。它透過 Bearer Token 驗證保護後端服務,僅允許授權使用者存取。這款工具適合用於開發、內網服務保護或作為 API Gateway 的前置防線。

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages