13158e3cdf
Added new example for how to retrieve a Google token, following the best case, non-browser, workflow. Other thirdparty auth mechs (Facebook, MSN) follow a similar pattern of using an access token.
22 lines
686 B
Python
22 lines
686 B
Python
from sleekxmpp.thirdparty.suelta.util import bytes
|
|
from sleekxmpp.thirdparty.suelta.sasl import Mechanism, register_mechanism
|
|
from sleekxmpp.thirdparty.suelta.exceptions import SASLError, SASLCancelled
|
|
|
|
|
|
|
|
class X_GOOGLE_TOKEN(Mechanism):
|
|
|
|
def __init__(self, sasl, name):
|
|
super(X_GOOGLE_TOKEN, self).__init__(sasl, name)
|
|
self.check_values(['email', 'access_token'])
|
|
|
|
def process(self, challenge=None):
|
|
email = bytes(self.values['email'])
|
|
token = bytes(self.values['access_token'])
|
|
return b'\x00' + email + b'\x00' + token
|
|
|
|
def okay(self):
|
|
return True
|
|
|
|
|
|
register_mechanism('X-GOOGLE-TOKEN', 3, X_GOOGLE_TOKEN, use_hashes=False)
|