⚡ update qq/gitee/github oauth2 login
This commit is contained in:
@@ -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++ {
|
||||
|
@@ -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 {
|
||||
|
11
core/gorm.go
11
core/gorm.go
@@ -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) //连接最大复用时间
|
||||
|
@@ -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
|
||||
}
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user