def create_auth(self, access_info): """ @param access_info: {user_id, access_token, action, zone, expires} @return {"payload":..., "signature": ...} """ if "expires" not in access_info or not access_info["expires"]: raise Exception("expires must exist in access_info") payload = base64_url_encode(json_dump(access_info)) signature = self.sign_string(payload) return {"payload": payload, "signature": signature}
def test_base64_url_encode(self): self.assertEqual("c29tZSBzdHJpbmcgdG8gZW5jb2RlIA", base64_url_encode("some string to encode "))
def sign_string(self, string_to_sign): to_sign = self.digest(string_to_sign) return base64_url_encode(to_sign)