概述
使用 thirdPartyLogin.WebQQLogin 相关工具函数,可以快速实现 Web 端 QQ 登陆功能。
示例代码
package main
import (
"fmt"
"github.com/cnlesscode/gotool/thirdPartyLogin"
"github.com/gin-contrib/sessions"
"github.com/gin-contrib/sessions/cookie"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
// 开启 session
store := cookie.NewStore([]byte("pwd..."))
r.Use(sessions.Sessions("WESSESSION", store))
webQQLogin := thirdPartyLogin.WebQQLogin{
AppId: "******",
AppKey: "******",
RedirectURI: "https://www.***.com/qqLogin/back",
StatePrefix: "WebQQLogin",
}
// 跳转到QQ登录页面
r.GET("/WebQQLogin", func(ctx *gin.Context) {
session := sessions.Default(ctx)
webQQLogin.Login(ctx, session)
})
// 授权登录后返回页面
r.GET("/qqLogin/back", func(ctx *gin.Context) {
session := sessions.Default(ctx)
openUser, err := webQQLogin.GetUser(ctx, session)
if err != nil {
ctx.Writer.Write([]byte("登陆失败 [openUser],请返回重试 :("))
return
}
fmt.Printf("openUser: %v\n", openUser)
// 此处 openUser 已经获取登陆必备的 openid nickname 等相关数据,
// 请根据自己项目的实际需求继续完善登陆功能 ...
})
// 监听指定端口
r.Run(":80")
}