1 Star 0 Fork 0

drama10096/oauth2

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
handler.go 2.29 KB
一键复制 编辑 原始数据 按行查看 历史
Lyric 提交于 2016-12-09 18:15 +08:00 . optimization of error handling
package server
import (
"net/http"
"time"
"gopkg.in/oauth2.v3"
"gopkg.in/oauth2.v3/errors"
)
type (
// ClientInfoHandler get client info from request
ClientInfoHandler func(r *http.Request) (clientID, clientSecret string, err error)
// ClientAuthorizedHandler check the client allows to use this authorization grant type
ClientAuthorizedHandler func(clientID string, grant oauth2.GrantType) (allowed bool, err error)
// ClientScopeHandler check the client allows to use scope
ClientScopeHandler func(clientID, scope string) (allowed bool, err error)
// UserAuthorizationHandler get user id from request authorization
UserAuthorizationHandler func(w http.ResponseWriter, r *http.Request) (userID string, err error)
// PasswordAuthorizationHandler get user id from username and password
PasswordAuthorizationHandler func(username, password string) (userID string, err error)
// RefreshingScopeHandler check the scope of the refreshing token
RefreshingScopeHandler func(newScope, oldScope string) (allowed bool, err error)
// ResponseErrorHandler response error handing
ResponseErrorHandler func(re *errors.Response)
// InternalErrorHandler internal error handing
InternalErrorHandler func(err error) (re *errors.Response)
// AuthorizeScopeHandler set the authorized scope
AuthorizeScopeHandler func(w http.ResponseWriter, r *http.Request) (scope string, err error)
// AccessTokenExpHandler set expiration date for the access token
AccessTokenExpHandler func(w http.ResponseWriter, r *http.Request) (exp time.Duration, err error)
// ExtensionFieldsHandler in response to the access token with the extension of the field
ExtensionFieldsHandler func(ti oauth2.TokenInfo) (fieldsValue map[string]interface{})
)
// ClientFormHandler get client data from form
func ClientFormHandler(r *http.Request) (clientID, clientSecret string, err error) {
clientID = r.Form.Get("client_id")
clientSecret = r.Form.Get("client_secret")
if clientID == "" || clientSecret == "" {
err = errors.ErrInvalidClient
}
return
}
// ClientBasicHandler get client data from basic authorization
func ClientBasicHandler(r *http.Request) (clientID, clientSecret string, err error) {
username, password, ok := r.BasicAuth()
if !ok {
err = errors.ErrInvalidClient
return
}
clientID = username
clientSecret = password
return
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/drama10096/oauth2.git
git@gitee.com:drama10096/oauth2.git
drama10096
oauth2
oauth2
v3.9.2

搜索帮助