go-oauth2 / oauth2

OAuth 2.0 server library for the Go programming language.
https://pkg.go.dev/github.com/go-oauth2/oauth2/v4
MIT License
3.31k stars 563 forks source link

我在go-zero中集成go-oauth2后,如何跨服务验证token #248

Open tgy3300 opened 1 year ago

tgy3300 commented 1 year ago

我使用最新版的go-zero开发了go微服务,服务如下: account-api admin-api

go-oauth2是集成在account-api端的,按照官方的文档已经成功集成,现在的问题是, 在前端(vue开发的前端)访问account-api/account/info接口

这个接口使用下面的代码验证前端携带的token,可以正常验证并通过

token, err := svcCtx.Oauth2Res.CheckToken(w, r)
        if err != nil {
            return
        }

CheckToken的封装是根据https://github.com/llaoj/oauth2nsso/blob/master/main.go#L273C8-L273C8进行的

现在在前端使用同样的请求头请求admin-api/system/info接口,接口使用同样的代码

token, err := svcCtx.Oauth2Res.CheckToken(w, r)
        if err != nil {
            return
        }

报invalid access token错误

如何解决跨服务验证token,还请指点

daifuyang commented 1 year ago

把oauth当请求服务。然后所有的都走api中间件验证就可以了