The correct way to do this would be something like:
def ulogin():
u = auth.login_bare(request.vars.user, request.vars.password)
if not u:
return ''
else:
return u
Or something like that; I don't know.
Now, the issue is that this validates a login, but it does not really log a
person in.
Meaning, the session cookie, etc, are not created.
I have used this function with success to authenticate https requests e.g.
from mobile clients and build REST APIs.
Luca
On Sunday, August 11, 2013 2:15:47 AM UTC-7, mweissen wrote:
>
> Hi,
>
> I want to build a command line login, eg.
>
> https://my.domain.com/app/contr/mylogin?user=abc&pwd=secret
>
> (Yes, this could be a security risk). At first I have tried to learn more
> about auth.user_login. The function
>
> def ulogin():
> auth.login_user(1)
>
> returns the following ticket:
>
> Ticket ID
>
> 127.0.0.1.2013-08-11.10-58-17.4854fae8-71bb-4b32-b4bb-2fe044ad3ec3
> <type 'exceptions.TypeError'> 'int' object is not iterable
> Version
> web2py™ Version 2.5.1-stable+timestamp.2013.06.06.15.39.19 Python Python
> 2.7.3: D:\Python27\python.exe (prefix: D:\Python27)
> Now I have tried to understand the source code:
>
> def login_user(self, user):
> """
> login the user = db.auth_user(id)
> """
> from gluon.settings import global_settings
> if global_settings.web2py_runtime_gae:
> user = Row(self.db.auth_user._filter_fields(user, id=True))
> delattr(user,'password')
> else:
> user = Row(user)
> for key,value in user.items():
> if callable(value) or key=='password':
> delattr(user,key)
> current.session.auth = Storage(
> user = user,
> last_visit=current.request.now,
> expiration=self.settings.expiration,
> hmac_key=web2py_uuid())
> self.user = user
> self.update_groups()
>
> I think the Row function does some magic.
> Who knows how to use login_user?
>
> Regards Martin
>
--
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.