#Go(Gin)とnginxで外部にパラメーター付きでリダイレクトさせたい
ツイッター認可でログインさせようとしています。
golangのみのhttp://localhost:8080/twitter/login
ではログイン処理ができます.
しかし、nginxを通すとhttps://api.twitter.com/oauth/request_token
で処理が通ってしまいます.
docker
1version: '3' 2services: 3 api: 4 build: ./docker/api 5 container_name: golang 6 volumes: 7 - ./api:/go/src/api 8 networks: 9 - default 10 ports: 11 - 5555:8080 12 command: 'go run server.go' 13 rp: 14 build: ./docker/rp 15 container_name: nginx 16 volumes: 17 - ./nginx:/etc/nginx/conf.d/ 18 ports: 19 - 80:80 20 networks: 21 - default 22 23volumes: 24 db-store: 25
go
1# router.go 2 import ( 3 "github.com/gin-gonic/gin" 4 5 "api/interfaces/controllers" 6 ) 7 var Router *gin.Engine 8 9 func init() { 10 router := gin.Default() 11 12 router.GET("api/twitter/login", func(c *gin.Context) { controllers.TwitterLogin(c) }) 13 router.GET("api/twitter/callback", func(c *gin.Context) { controllers.TwitterCallback(c) }) 14 15 Router = router 16 }
go
1# GET("twitter/login", ~~) 2package controller 3import ( 4 "net/http" 5 "os" 6 "github.com/dghubble/oauth1" 7 "github.com/dghubble/oauth1/twitter" 8) 9 10config := oauth1.Config{ 11 ConsumerKey: os.Getenv("TWITTER_CONSUMER_KEY"), 12 ConsumerSecret: os.Getenv("TWITTER_CONSUMER_SECRET"), 13 Endpoint: twitter.AuthorizeEndpoint, 14} 15requestToken, _, _ := config.RequestToken() 16c.Redirect(http.StatusFound, "https://api.twitter.com/oauth/authenticate?oauth_token="+requestToken)
nginx
1server { 2 listen 80; 3 server_name localhost; 4 5 location /api/ { 6 proxy_pass http://golang:8080/api/; 7 } 8 error_page 500 502 503 504 /50x.html; 9 location = /50x.html { 10 root /usr/share/nginx/html; 11 } 12} 13
回答1件
あなたの回答
tips
プレビュー