update qq/gitee/github oauth2 login

This commit is contained in:
landaiqing
2024-08-24 16:31:40 +08:00
parent 014abca8f8
commit 9330935822
45 changed files with 1243 additions and 642 deletions

View File

@@ -11,7 +11,6 @@ import (
"github.com/wenlng/go-captcha/v2/click"
"github.com/wenlng/go-captcha/v2/rotate"
"github.com/wenlng/go-captcha/v2/slide"
"log"
"schisandra-cloud-album/global"
)
@@ -47,13 +46,13 @@ func initTextCaptcha() {
// fonts
fonts, err := fzshengsksjw.GetFont()
if err != nil {
log.Fatalln(err)
global.LOG.Fatalln(err)
}
// background images
imgs, err := images.GetImages()
if err != nil {
log.Fatalln(err)
global.LOG.Fatalln(err)
}
// thumb images
@@ -119,13 +118,13 @@ func initClickShapeCaptcha() {
// click.WithUseShapeOriginalColor(false) -> Random rewriting of graphic colors
shapeMaps, err := shapes.GetShapes()
if err != nil {
log.Fatalln(err)
global.LOG.Fatalln(err)
}
// background images
imgs, err := images.GetImages()
if err != nil {
log.Fatalln(err)
global.LOG.Fatalln(err)
}
// set resources
@@ -146,12 +145,12 @@ func initsSlideCaptcha() {
// background images
imgs, err := images.GetImages()
if err != nil {
log.Fatalln(err)
global.LOG.Fatalln(err)
}
graphs, err := tiles.GetTiles()
if err != nil {
log.Fatalln(err)
global.LOG.Fatalln(err)
}
var newGraphs = make([]*slide.GraphImage, 0, len(graphs))
@@ -182,7 +181,7 @@ func initRotateCaptcha() {
// background images
imgs, err := images.GetImages()
if err != nil {
log.Fatalln(err)
global.LOG.Fatalln(err)
}
// set resources
@@ -203,12 +202,12 @@ func initSlideRegionCaptcha() {
// background image
imgs, err := images.GetImages()
if err != nil {
log.Fatalln(err)
global.LOG.Fatalln(err)
}
graphs, err := tiles.GetTiles()
if err != nil {
log.Fatalln(err)
global.LOG.Fatalln(err)
}
var newGraphs = make([]*slide.GraphImage, 0, len(graphs))
for i := 0; i < len(graphs); i++ {

View File

@@ -14,13 +14,22 @@ var (
func InitCasbin() {
once.Do(func() {
adapter, _ := gormadapter.NewAdapterByDBUseTableName(global.DB, "sca_sys_", "casbin_rule")
m, err := model.NewModelFromFile("config/rbac_model.pml")
adapter, err := gormadapter.NewAdapterByDBUseTableName(global.DB, global.CONFIG.Casbin.TablePrefix, global.CONFIG.Casbin.TableName)
if err != nil {
global.LOG.Error(err.Error())
panic(err)
}
e, _ := casbin.NewCachedEnforcer(m, adapter)
m, err := model.NewModelFromFile(global.CONFIG.Casbin.ModelPath)
if err != nil {
global.LOG.Error(err.Error())
panic(err)
}
e, err := casbin.NewCachedEnforcer(m, adapter)
if err != nil {
global.LOG.Error(err.Error())
panic(err)
}
e.EnableCache(true)
e.SetExpireTime(60 * 60)
err = e.LoadPolicy()
if err != nil {

View File

@@ -34,8 +34,9 @@ func MySQlConnect() *gorm.DB {
})
} else {
logfile, _ := os.OpenFile("/tmp/logs/mysql.log", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0666)
mysqlLogger = logger.New(
log.New(os.Stdout, "\r\n", log.LstdFlags),
log.New(logfile, "\r\n", log.LstdFlags),
logger.Config{
SlowThreshold: time.Second, //慢sql日志
LogLevel: logger.Error, //级别
@@ -46,12 +47,16 @@ func MySQlConnect() *gorm.DB {
}
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
Logger: mysqlLogger,
Logger: mysqlLogger,
PrepareStmt: true,
})
if err != nil {
global.LOG.Fatalf(fmt.Sprintf("[%s] MySQL 连接失败", dsn))
}
sqlDB, _ := db.DB()
sqlDB, err := db.DB()
if err != nil {
global.LOG.Fatalf(fmt.Sprintf("[%s] MySQL 获取DB失败", dsn))
}
sqlDB.SetMaxIdleConns(global.CONFIG.MySQL.MaxIdleConnes)
sqlDB.SetMaxOpenConns(global.CONFIG.MySQL.MaxOpenConnes)
sqlDB.SetConnMaxLifetime(time.Hour * 4) //连接最大复用时间

View File

@@ -1,80 +1,24 @@
package core
import (
"bytes"
"fmt"
"github.com/sirupsen/logrus"
"os"
"path"
"schisandra-cloud-album/global"
"schisandra-cloud-album/middleware"
"time"
)
const (
red = 31
yellow = 33
blue = 34
gray = 37
)
type LogFormatter struct{}
func (f *LogFormatter) Format(entry *logrus.Entry) ([]byte, error) {
//根据不同的level显示不同的颜色
var levelColor int
switch entry.Level {
case logrus.DebugLevel, logrus.TraceLevel:
levelColor = gray
case logrus.WarnLevel:
levelColor = yellow
case logrus.ErrorLevel, logrus.FatalLevel, logrus.PanicLevel:
levelColor = red
default:
levelColor = blue
}
var b *bytes.Buffer
if entry.Buffer != nil {
b = entry.Buffer
} else {
b = &bytes.Buffer{}
}
log := global.CONFIG.Logger
// 自定义日期格式
timestamp := entry.Time.Format("2006-01-02 15:04:05")
if entry.HasCaller() {
//自定义文件路径
funcVal := entry.Caller.Function
fileVal := fmt.Sprintf("%s:%d", path.Base(entry.Caller.File), entry.Caller.Line)
//自定义输出格式
fmt.Fprintf(b, "%s[%s] \x1b[%dm[%s]\x1b[0m %s %s : %s\n", log.Prefix, timestamp, levelColor, entry.Level, fileVal, funcVal, entry.Message)
} else {
fmt.Fprintf(b, "%s[%s] \x1b[%dm[%s]\x1b[0m : %s\n", log.Prefix, timestamp, levelColor, entry.Level, entry.Message)
}
return b.Bytes(), nil
}
func InitLogger() *logrus.Logger {
newLog := logrus.New()
newLog.SetOutput(os.Stdout) //设置输出类型
newLog.SetReportCaller(global.CONFIG.Logger.ShowLine) //设置是否显示函数名和行号
newLog.SetFormatter(&LogFormatter{}) //设置日志格式
func InitLogger() {
// 按照日期格式化输出
mylog := middleware.NewDateLog(&middleware.DateLogConfig{
Date: time.Now().Format("2006-01-02"),
Path: global.CONFIG.Logger.Director,
Name: global.CONFIG.Logger.LogName,
})
log := mylog.Init()
level, err := logrus.ParseLevel(global.CONFIG.Logger.Level)
if err != nil {
level = logrus.InfoLevel
}
newLog.SetLevel(level) //设置日志级别
global.LOG = newLog
initDefaultLogger()
return newLog
}
func initDefaultLogger() {
//全局日志
logrus.SetOutput(os.Stdout) //设置输出类型
logrus.SetReportCaller(global.CONFIG.Logger.ShowLine) //设置是否显示函数名和行号
logrus.SetFormatter(&LogFormatter{}) //设置日志格式
level, err := logrus.ParseLevel(global.CONFIG.Logger.Level)
if err != nil {
level = logrus.InfoLevel
}
logrus.SetLevel(level) //设置日志级别
log.SetLevel(level) //设置日志级别
global.LOG = log
}

View File

@@ -13,10 +13,10 @@ func InitWechat() {
Secret: global.CONFIG.Wechat.AppSecret,
Token: global.CONFIG.Wechat.Token,
AESKey: global.CONFIG.Wechat.AESKey,
//Log: officialAccount.Log{
// Level: "debug",
// File: "./wechat.log",
//},
Log: officialAccount.Log{
Level: "error",
File: "./wechat.log",
},
ResponseType: os.Getenv("response_type"),
HttpDebug: true,
Debug: true,
@@ -27,6 +27,7 @@ func InitWechat() {
}),
})
if err != nil {
global.LOG.Error(err.Error())
panic(err)
}
global.Wechat = OfficialAccountApp