Documentation ¶
Index ¶
- func ParseAccessTokenForQq(source string) (string, string, int)
- func ParseOpenIdForQq(source string) string
- func ParseUnionIdForQq(source string) string
- type IOauth
- type Oauth
- type OauthQq
- func (s *OauthQq) GetAccessToken(code string) (*OauthToken, error)
- func (s *OauthQq) GetAuthorizeUrl(args ...string) string
- func (s *OauthQq) GetOpenId(accessToken string) (string, error)
- func (s *OauthQq) GetUnionId(accessToken string) (string, error)
- func (s *OauthQq) GetUserInfo(accessToken, openId string) (*OauthUser, error)
- func (s *OauthQq) RefreshAccessToken(refreshToken string) (*OauthToken, error)
- func (s *OauthQq) SetUri(uriType OauthUriType, uri string)
- type OauthState
- type OauthToken
- type OauthUriType
- type OauthUser
- type OauthWeChat
- func (s *OauthWeChat) GetAccessToken(code string) (*OauthToken, error)
- func (s *OauthWeChat) GetAuthorizeUrl(args ...string) string
- func (s *OauthWeChat) GetUserInfo(accessToken, openId string) (*OauthUser, error)
- func (s *OauthWeChat) RefreshAccessToken(refreshToken string) (*OauthToken, error)
- func (s *OauthWeChat) SetUri(uriType OauthUriType, uri string)
- type QqUserInfoResponse
- type WeChatAccessTokenResponse
- type WeChatUserInfoResponse
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ParseAccessTokenForQq ¶
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * 解析QQ返回的AccessToken * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
func ParseOpenIdForQq ¶
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * 解析QQ返回的OpenId * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
func ParseUnionIdForQq ¶
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * 解析QQ返回的UnionId * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Types ¶
type IOauth ¶
type IOauth interface { SetUri(uriType OauthUriType, uri string) GetAuthorizeUrl(args ...string) string GetAccessToken(code string) (*OauthToken, error) RefreshAccessToken(refreshToken string) (*OauthToken, error) GetUserInfo(accessToken, openId string) (*OauthUser, error) }
type OauthQq ¶
type OauthQq struct {
Oauth
}
func (*OauthQq) GetAccessToken ¶
func (s *OauthQq) GetAccessToken(code string) (*OauthToken, error)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * 获取AccessToken * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
func (*OauthQq) GetAuthorizeUrl ¶
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * 获取鉴权地址 * args: state, scope * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
func (*OauthQq) GetOpenId ¶
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * 获取OpenId * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
func (*OauthQq) GetUnionId ¶
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * 获取UnionId * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
func (*OauthQq) GetUserInfo ¶
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * 获取用户信息 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
func (*OauthQq) RefreshAccessToken ¶
func (s *OauthQq) RefreshAccessToken(refreshToken string) (*OauthToken, error)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * 刷新AccessToken * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
func (*OauthQq) SetUri ¶
func (s *OauthQq) SetUri(uriType OauthUriType, uri string)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * 设置Uri * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
type OauthState ¶
type OauthState struct {
// contains filtered or unexported fields
}
func NewOauthState ¶
func NewOauthState(encryptKey string, minutes int) *OauthState
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * 初始化OauthState * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
func (*OauthState) GetState ¶
func (s *OauthState) GetState() string
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * 获取状态值 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
func (*OauthState) IsValid ¶
func (s *OauthState) IsValid(rawState string) bool
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * 判断状态值是否有效 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
type OauthToken ¶
type OauthUriType ¶
type OauthUriType int
const ( AuthorizeCodeUri OauthUriType = iota AccessTokenUri RefreshTokenUri OpenIdUri UserInfoUri )
type OauthWeChat ¶
type OauthWeChat struct {
Oauth
}
func (*OauthWeChat) GetAccessToken ¶
func (s *OauthWeChat) GetAccessToken(code string) (*OauthToken, error)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * 获取AccessToken * { * "access_token":"ACCESS_TOKEN", * "expires_in":7200, * "refresh_token":"REFRESH_TOKEN", * "openid":"OPENID", * "scope":"SCOPE" * } * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
func (*OauthWeChat) GetAuthorizeUrl ¶
func (s *OauthWeChat) GetAuthorizeUrl(args ...string) string
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * 获取鉴权地址 * state, scope * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
func (*OauthWeChat) GetUserInfo ¶
func (s *OauthWeChat) GetUserInfo(accessToken, openId string) (*OauthUser, error)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * 获取用户信息 * { * "openid":"OPENID", * "nickname":"NICKNAME", * "sex":1, * "province":"PROVINCE", * "city":"CITY", * "country":"COUNTRY", * "headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0", * "privilege":[ * "PRIVILEGE1", * "PRIVILEGE2" * ], * "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL" * } * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
func (*OauthWeChat) RefreshAccessToken ¶
func (s *OauthWeChat) RefreshAccessToken(refreshToken string) (*OauthToken, error)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * 刷新AccessToken * { * "access_token":"ACCESS_TOKEN", * "expires_in":7200, * "refresh_token":"REFRESH_TOKEN", * "openid":"OPENID", * "scope":"SCOPE" * } * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
func (*OauthWeChat) SetUri ¶
func (s *OauthWeChat) SetUri(uriType OauthUriType, uri string)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * 设置Uri * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
type QqUserInfoResponse ¶
type QqUserInfoResponse struct { Ret int `form:"ret" json:"ret"` Msg string `form:"msg" json:"msg"` Nickname string `form:"nickname" json:"nickname"` //昵称 Gender string `form:"gender" json:"gender"` //性别。 如果获取不到则默认返回"男" Year string `form:"year" json:"year"` //出生年 Province string `form:"province" json:"province"` //省 City string `form:"city" json:"city"` //市 FigureUrl string `form:"figureurl" json:"figureurl"` //大小为30×30像素的QQ空间头像URL FigureUrl1 string `form:"figureurl_1" json:"figureurl_1"` //大小为50×50像素的QQ空间头像URL FigureUrl2 string `form:"figureurl_2" json:"figureurl_2"` //大小为100×100像素的QQ空间头像URL FigureUrlQq1 string `form:"figureurl_qq_1" json:"figureurl_qq_1"` //大小为40×40像素的QQ头像URL FigureUrlQq2 string `form:"figureurl_qq_2" json:"figureurl_qq_2"` //大小为100×100像素的QQ头像URL。需要注意,不是所有的用户都拥有QQ的100x100的头像,但40x40像素则是一定会有 Vip string `form:"vip" json:"vip"` //标识用户是否为黄钻用户(0:不是;1:是) Level string `form:"level" json:"level"` //黄钻等级 YellowVipLevel string `form:"yellow_vip_level" json:"yellow_vip_level"` //黄钻等级 IsYellowVip string `form:"is_yellow_vip" json:"is_yellow_vip"` //标识用户是否为黄钻用户(0:不是;1:是) IsYellowYearVip string `form:"is_yellow_year_vip" json:"is_yellow_year_vip"` //标识是否为年费黄钻用户(0:不是; 1:是) }
type WeChatAccessTokenResponse ¶
type WeChatAccessTokenResponse struct { ErrCode string `form:"errcode" json:"errcode"` ErrMsg string `form:"errmsg" json:"errmsg"` OpenId string `form:"openid" json:"openid"` UnionId string `form:"unionid" json:"unionid"` AccessToken string `form:"access_token" json:"access_token"` RefreshToken string `form:"refresh_token" json:"refresh_token"` ExpiresIn int `form:"expires_in" json:"expires_in"` Scope string `form:"scope" json:"scope"` }
type WeChatUserInfoResponse ¶
type WeChatUserInfoResponse struct { ErrCode string `form:"errcode" json:"errcode"` ErrMsg string `form:"errmsg" json:"errmsg"` OpenId string `form:"openid" json:"openid"` //普通用户的标识,对当前开发者帐号唯一 UnionId string `form:"unionid" json:"unionid"` //用户统一标识。针对一个微信开放平台帐号下的应用,同一用户的unionid是唯一的。 Nickname string `form:"nickname" json:"nickname"` HeadImgUrl string `form:"headimgurl" json:"headimgurl"` //用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空 Sex int `form:"sex" json:"sex"` //普通用户性别,1为男性,2为女性 Country string `form:"country" json:"country"` //国家,如中国为CN Province string `form:"province" json:"province"` //普通用户个人资料填写的省份 City string `form:"city" json:"city"` //普通用户个人资料填写的城市 Privileges []string `form:"privilege" json:"privilege"` //用户特权信息,json数组,如微信沃卡用户为(chinaunicom) }
微信用户信息响应结构