models.py 文件源码

python
阅读 64 收藏 0 点赞 0 评论 0

项目:push-dev-dashboard 作者: mozilla-services 项目源码 文件源码
def validate_vapid_key(self, signed_token):
        try:
            key_data = urlsafe_b64decode(str(fix_padding(self.vapid_key)))
            key_string = extract_public_key(key_data)
            verifying_key = ecdsa.VerifyingKey.from_string(
                key_string,
                curve=ecdsa.NIST256p
            )
            signed_token = str(fix_padding(signed_token))
            try:
                submitted_claims_json = jws.verify(
                    signed_token, verifying_key, algorithms=['ES256']
                )
                submitted_claims = json.loads(submitted_claims_json)
                self_claims = json.loads(self.vapid_key_token)
                if submitted_claims['aud'] == self_claims['aud']:
                    self.vapid_key_status = 'valid'
                    self.validated = timezone.now()
                    self.save()
                    self.start_recording()
            except JWSError:
                self.vapid_key_status = 'invalid'
                self.save()
        except ecdsa.BadSignatureError:
            self.vapid_key_status = 'invalid'
            self.save()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号