def unsign(self, b64msg):
        """ Retrieves data from signed token.

        :param b64msg: Token to unsign
        :type b64msg: str
        """
        msg = self._b64decode(b64msg)
        try:
            body, signature = msg.rsplit('.', 1)

        except ValueError as e:
            raise MalformedSigendMessage(e.args[0])

        else:
            if signature == self._create_signature(body):
                try:
                    return json.loads(body)

                except ValueError as e:
                    raise MalformedSigendMessage(e.args[0])

            else:
                raise BadSignature()
Retrieves data from signed token.

        :param b64msg: Token to unsign
        :type b64msg: str