当前位置:网站首页>Flask login implementation

Flask login implementation

2022-07-27 08:33:00 pink_ Pig___

1. Generate token

1. Need to install jwt

pip install pyjwt

2. encapsulation token Generation method

import time
import jwt  # pip install pyjwt
from flask import current_app
class JwtTool():
    '''
    jwt management 
    '''
    def create(self,payload,ex=3600):
        '''
         Generate jwt
        :param payload:  load 
        :return: string jwt
        '''
        payload["exp"] = int(time.time())+ ex #  Default expiration date 1 Hours 
        secret_key = current_app.config.get("SECRET_KEY")
        token = jwt.encode(payload,secret_key,algorithm="HS256")
        return token
    def valid(self,token):
        '''
         check jwt
        :param token: JWT
        :return:  return payload
        '''
        secret_key = current_app.config.get("SECRET_KEY")
        try:
            payload = jwt.decode(token, secret_key, algorithms="HS256")
            return payload
        except Exception as e:
            print(e)
            return False

settings/secretconfig.py

class SecretConfig():
    RL_ACC_ID = "8a216da88185a9c001818a7781bc0148"
    RL_ACC_TOKEN = "c98c0ae0fbc54e4da1a070db3050e529"
    RL_APP_ID = "8a216da88185a9c001818a7782bf014f"
    RL_TID = "1"
    REDIS_HOST = "127.0.0.1"
    REDIS_PORT =6379

among SECRET_KEY It is obtained from the configuration item in, and the configuration item needs to be written
SecretConfig Is the configuration required for inheritance and SMS verification code
settings/secret.py

from settings.secret import SecretConfig

class DefaultConfig(SecretConfig):
    SECRET_KEY = "asdaweq"
    SQLALCHEMY_DATABASE_URI=""
    SQLALCHEMY_TRACK_MODIFICATIONS=False
    SQLALCHEMY_ECHO=True
    JSON_AS_ASCII=False
    SMS_TIME = 5

class DevConfig(DefaultConfig):
    SQLALCHEMY_DATABASE_URI="mysql+pymysql://root:[email protected]:3306/h2111anews"

2. Send SMS verification code

import time
import jwt  # pip install pyjwt
from flask import current_app
class JwtTool():
    '''
    jwt management 
    '''
    def create(self,payload,ex=3600):
        '''
         Generate jwt
        :param payload:  load 
        :return: string jwt
        '''
        payload["exp"] = int(time.time())+ ex #  Default expiration date 1 Hours 
        secret_key = current_app.config.get("SECRET_KEY")
        token = jwt.encode(payload,secret_key,algorithm="HS256")
        return token
    def valid(self,token):
        '''
         check jwt
        :param token: JWT
        :return:  return payload
        '''
        secret_key = current_app.config.get("SECRET_KEY")
        try:
            payload = jwt.decode(token, secret_key, algorithms="HS256")
            return payload
        except Exception as e:
            print(e)
            return False

Use SMS to import such calls

原网站

版权声明
本文为[pink_ Pig___]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/208/202207270501132520.html