Search code examples
pythonauthenticationsimperium

Simperium login in python fail to authenticate


I'm testing simperium with the last python api:

from simperium.core import Auth

# Global CONST
SIMPERIUM_APP_ID = "..."
SIMPERIUM_API_KEY = "..."
USER_NAME = 'test@test.com'
USER_PWD = 'test'

def newUser(user, pwd):
    auth = Auth(SIMPERIUM_APP_ID, SIMPERIUM_API_KEY)
    print user, pwd
    return auth.create(user, pwd)

def login(user, pwd):
    auth = Auth(SIMPERIUM_APP_ID, SIMPERIUM_API_KEY)
    print user, pwd
    return auth.authorize(user, pwd)

def getApi(auth_token):
    return Api(SIMPERIUM_APP_ID, auth_token)
print newUser(USER_NAME, USER_PWD):
token = login(USER_NAME, USER_PWD)
print token
print getApi(token)

The user is created with a valid token but, the login fail, get in auth.authorize:

Traceback (most recent call last):   File "/Users/**/Proyectos/**/testdata.py", line 22, in <module>
    token = login(USER_NAME, USER_PWD)   File "/Users/**/Proyectos/***/testdata.py", line 17, in login
    return auth.authorize(user, pwd)   File "/Library/Python/2.7/site-packages/simperium/core.py", line 59, in authorize
    response = self._request(self.appname+'/authorize/', data)   File "/Library/Python/2.7/site-packages/simperium/core.py", line 40, in
_request
    response = urllib2.urlopen(request)   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 400, in open
    response = meth(req, response)   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 513, in http_response
    'http', request, response, code, msg, hdrs)   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 438, in error
    return self._call_chain(*args)   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 372, in _call_chain
    result = func(*args)   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 521, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) urllib2.HTTPError: HTTP Error 401: UNAUTHORIZED

Solution

  • Look like I narrow the issue.

    If I use the SAME email that I enter to suscribe to simperium as a user of the app, it refuse to login, but if change it to anything else, it work (that was something that I change for post the sample code.)

    So, I suscribe with "sample@sample.com", it let create the user (returning none, but visible in the databrowse) but fail the auth. However, change it to "sample@sample.net" work fine.