Authentication con Tastypie

31 views
Skip to first unread message

Christian Eduardo Palomares Peralta

unread,
Jun 12, 2013, 10:20:24 PM6/12/13
to pytho...@googlegroups.com
Holas a todos
Estoy que trato de hacer una app para Android algo sencilla.
Necesito una API sencilla la cual consumir desde mi cliente Android. Después de examinar un poco y querer darle un poco más de seguridad a la api, quería hacer lo siguiente: tener un servicio el cual me pudiera otorgar un token para usarlo en los demás métodos que deseaba consumir, traté de leer la documentación de tastypie, pero como recién me estoy metiendo a esto deseaba entender un poco qué tipo de autenticación debería  de usar de las que están en la documentación, así también, qué url debería de consumir y de qué forma debería de enviar los datos (y si es que hay alguna forma de que pueda enviar de diversas formas la data).

Se agradece por adelantado cualquier ayuda :)

Saludos

Nicolas Valcárcel

unread,
Jun 12, 2013, 11:44:07 PM6/12/13
to pytho...@googlegroups.com
Yo uso cherrypy para esto, y lo que hago es logear al usuario con user/pass y guardar un cookie con un uuid unico y listo, cada cierto tiempo lo "expiro" de lado servidor y cambio el valor del cookie.

import hmac
from hashlib import sha1
from uuid import uuid4

token = hmac.new(uuid4().bytes, digestmod=sha1).hexdigest()
# Guarda en la DB
set_auth_cookies(token)

def set_auth_cookies(token):
    cherrypy.response.cookie['COOKIE_NAME'] = token
    cherrypy.response.cookie['COOKIE_NAME']['path'] = '/'
    cherrypy.response.cookie['COOKIE_NAME']['version'] = 1
    cherrypy.response.cookie['COOKIE_NAME']['max-age'] = 3600
    cherrypy.response.cookie['COOKIE_NAME']['httponly'] = True

luego de eso las siguientes llamadas las leo asi:
def login_required():
    if not 'COOKIE_NAME' in cherrypy.request.cookie:
        raise cherrypy.HTTPError(401)

    token = cherrypy.request.cookie['COOKIE_NAME'].value
    # Buscar usuario en DB

    if not user or user['expires'] < datetime.now():
        raise cherrypy.HTTPError(401)

    cherrypy.request.user = user
    set_auth_cookies(token)


2013/6/12 Christian Eduardo Palomares Peralta <palom...@gmail.com>

--
Has recibido este mensaje porque estás suscrito al grupo "Python Perú" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a python-peru...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a pytho...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/python-peru?hl=es.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 



--
Nicolas Valcárcel
Gerente IT / CTO
Telefono: (+511) 275 3065

Christian Eduardo Palomares Peralta

unread,
Jul 4, 2013, 11:13:07 AM7/4/13
to pytho...@googlegroups.com
Gracias Nicolás
Me confundía un poco sobre cómo debía de hacerlo, pero ya pude solucionarlo :)

Saludos
Reply all
Reply to author
Forward
0 new messages