django token认证

    网站程序在后端api接口中移动端通过访问url来获取参数,就在这种获取url参数的时候如果接口不进行加密验证,那么很有可能会造成数据泄露,本文便是为解决django开发api接口验证的问题。

    首先需要安装itsdangerous模块 利用pip install itsdangerous 自动安装

    然后导入该包

        from itsdangerous import TimedJSONWebSignatureSerializer as Serializer

        import  itsdangerous,time

    然后程序中设置两串加密字符串(key,salt随意设置)和过期时间

        secret_key = ""  #key

        salt_str = ""       #salt

        expires_in = 60 #过期时间

        获取token

            s = Serializer(secret_key=secret_key, expires_in=expires_in, salt=salt_str, )

            token = s.dumps({

                "uid": 1,

                "type": 1,

                "iat": time.time(),  

            }).decode("utf-8") #填写后面想要token解析出的参数

        解析token:

            def parser_token(token):

                s = Serializer(secret_key=secret_key,expires_in=expires_in,salt=salt_str)

                try:

                    return {"msg":"解析成功","code":1,"data":s.loads(token)}

                except itsdangerous.SignatureExpired:

                    return {"msg":"token已过期请重新登录","code":-1}

                except itsdangerous.BadSignature as e:

                    if e.payload:

                        try:

                            s = s.load_payload(e.payload)

                            print(s)

                            return {"msg": "secret_key 和 salt可能已经泄露", "code": -1}

                        except:pass

                    return {"msg": "token被篡改", "code": -1}

                except:

                    return {"msg": "解析失败 未知原因!", "code": -1}


    设计程序时可以在会员登录的时候将token颁发出去,然后在后面所有接口的header中都添加上token字段,这样便能达到token验证的目的,保护数据安全。例:

    程序代码

        

    


关键词:
返回列表

相关文章

相关案例