我想将Cookie与go-endpoints一起使用。
为此,需要将Access-Control-Allow-Credentials设置为Header。
但是,不知道如何在go-endpoints中将Allow-Credentials设置为Header。
allowCookieAuth是,我该如何做到真实?
https://github.com/GoogleCloudPlatform/go-endpoints/search?utf8=%E2%9C%93&q=allowCookieAuth
因为go-endpoints处理程序没有http.ResponseWriter,所以无法设置Http Header。
func (gs *GreetingService) List(c endpoints.Context, r *GreetingsListReq) (*GreetingsList, error) {
if r.Limit <= 0 {
r.Limit = 10
}
q := datastore.NewQuery("Greeting").Limit(r.Limit)
greets := make([]*Greeting, 0, r.Limit)
keys, err := q.GetAll(c, &greets)
if err != nil {
return nil, err
}
for i, k := range keys {
greets[i].Key = k
}
return &GreetingsList{greets}, nil
}
帮帮我!
答案 0 :(得分:1)
如果我理解正确,那么你所要做的就是:
func yourHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Credentials", "true")
// ...other code
}
答案 1 :(得分:0)
通过修补端点,并达到目标。
dst.Auth = &struct {
AllowCookie bool `json:"allowCookieAuth"`
}{true}
https://github.com/sinmetal/go-endpoints/commit/25c0e85b06c13511291cb8b54f2878c5ac4587ad
但是,我不认为这是非常好的方式。 如果可能的话,我想在没有修补的情况下达到目标。