hash加密密码,验证密码
我这里是兼容了django的默认加密密码,可以从获取出来直接验证
package collections
import (
"crypto/sha256"
"encoding/base64"
"fmt"
"strconv"
"strings"
"math/rand"
"golang.org/x/crypto/pbkdf2"
)
const Iterations in作者文章归档:陈海峰
package collections
import (
"crypto/sha256"
"encoding/base64"
"fmt"
"strconv"
"strings"
"math/rand"
"golang.org/x/crypto/pbkdf2"
)
const Iterations inpackage collections
import (
"fmt"
"time"
"github.com/golang-jwt/jwt/v5"
)
var hmacSampleSecret = []byte("my_eyjwt_secret")
type TokenMap struct {
Type string
Nbf int64
Username string
UserId int
Exp go mod init example/hello
chf@chf:~/go_obj/test$ cat go.mod
module test_mod
go 1.23.2
go mod tidy
GO111MODULE开启或关闭模块支持 GO111MODULE=off 关闭模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包。 GO111MODULE=on 开启模块支持,go 会忽略 GOPATH 和 vendo
安装位置自行选择当前是/usr/local/
tar -C /usr/local -xzf go1.23.2.linux-amd64.tar.gz
您可以通过将以下行添加到 $HOME/.profile 或 /etc/profile(用于系统范围的安装):
export PATH=$PATH:/usr/local/go/bin
通过打开命令提示符并键入 Go 来验证是否已安装 Go 以下命令:
go version
node管理工具 npm管理工具
安装
nvm install 20
应用
nvm use 20.18.1
如果你想要将某个版本设置为默认版本,可以使用以下命令:
nvm alias default 20.18.1
我这里是发送邮件, 定时晚上6点执行
from datetime import datetime, timedelta
from django.conf import settings
from django.utils import timezone
from backend.cews.tasks import send_email_when_check_eform
import pytz
def schedule_email(recipient_email, subject, message):
"""
django中celery使用定时任务
celery_app.py
import os
from celery import Celery
# set the default Django settings module for the 'celery' program.
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.local")
app = Celery("backend")
# Using a string here me开启重试需要添加 bind=True参数
才能绑定到self来进行重试
@celery_app.task(bind=True, max_retries=3, default_retry_delay=5)
def send_email_when_check_eform(self, recipient_email, subject, message):
password = 'G@9742ns'
server_email = 'no-reply@gnstec.com.hk'
from_addr = forma我这里是定义数据结构模板, 来限制用户的dict内容
from ninja import Schema
from typing import TypeVar, Generic
T = TypeVar('T')
class ApiResSchema(Schema, Generic[T]):
data: T = ""
code: int = 0
msg: str = ""
django-ninja使用的时候可以通过[]写入类型, 框架自动序列化
@message_router.get(patimport jwt
import datetime
from django.conf import settings
def create_tokens(user_id):
account_token_payload = {
'user_id': user_id,
'exp': datetime.datetime.now() + datetime.timedelta(days=365) # 账户令牌过期时间
}
refresh_token_payload = {