I tried this decorator, too:

auth.settings.allow_basic_login = True
@auth.requires_login()

jQuery still chokes on user authorization. Moreover, it tries to redirect 
you to a login page, which in my case is not applicable.


On Saturday, 30 May 2015 14:32:24 UTC-4, horridohobbyist wrote:
>
> I'm trying to implement a REST api. I've coded the following:
>
> @request.restful()
> def api():
>     response.view = 'generic.json'
>     # curl -k --user tyr...@yahoo.ca:Lannister -G -d "var1=something1" -d 
> "var2=something2"
>     #     
> https://miramar21.com/tut_server/default/api/verify/person/:usr/:pwd
>     #     https://miramar21.com/tut_server/default/api/add/person
>     #     https://miramar21.com/tut_server/default/api/update/person/:id
>     def GET(*args,**vars):
>         auth.basic()
>         if not auth.user:
>             return dict(unauthorized=True)
>         try:
>             if args[0] == 'verify':
>                 if len(args) > 3:
>                     table_name = args[1]
>                     usr = args[2]
>                     pwd = args[3]
>                     alg = 'pbkdf2(1000,20,sha512)'
>                     hash = str(CRYPT(digest_alg=alg,salt=False)(pwd)[0])
>                     row = db(db[table_name].email==usr).select().first()
>                     if row:
>                         status = True if row.password == hash else False
>                         return dict(verified=status,id=row.id)
>                 return locals()
>             if args[0] == 'add':
>                 if len(args) > 1:
>                     table_name = args[1]
>                     return db[table_name].validate_and_insert(**vars)
>                 return locals()
>             if args[0] == 'update':
>                 if len(args) > 2:
>                     table_name = args[1]
>                     record_id = args[2]
>                     return db(db[table_name]._id==record_id).
> validate_and_update(**vars)
>                 return locals()
>         except:
>             return dict(fatal=True)
>         return locals()
>     return locals()
>
> I have a feeling that I'm not doing user authorization for the REST api 
> correctly, although the following cURL command works fine:
>
> curl -k --user tyr...@yahoo.ca:Lannister https://
> miramar21.com/tut_server/default/api/verify/person/james.b...@outlook.com/Prometheus
>
> When I try to use jQuery ajax to perform the same operation, it chokes on 
> the user authorization, whether I use JS headers or beforeSend. So I 
> suspect I'm doing something wrong. (But why is cURL working???)
>
> I just want to control user authorization as simply and cleanly as 
> possible.
>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to