Python 之 cas-clinet

因为要搞一个用户登录安全的验证,要用到cas服务,所以在网上搜了很多关于cas信息才搞成功。

我写的属于客户端的cas就是从CAS服务,获取返回的ticket验证通过,用户登录成功。

使用的是web.py。

首先:

pip install cas_client

代码例子:

from cas_client import CASClient


app_login_url = 'http://www.my-app.com/login'   # 请求的网址
cas_url = 'http://cas.my-app.com'    #重定向到cas验证的网址
cas_client = CASClient(cas_url, auth_prefix='')    #实例化cas_client对象
data = web.input()    #web的获取请求数据
ticket = data.get('ticket')
if ticket:
    try:
        cas_response = cas_client.perform_service_validate(
            ticket=ticket,
            service_url=app_login_url,
            )   #验证ticket
        usernmae = cas_response.user   # 此处可以获取返回的用户名信息,以便使用用户名做一些处理
    except:
        # CAS server is currently broken, try again later.
        return redirect(cas_url)
    if cas_response and cas_response.success:   # 验证通过
        session['logged-in'] = True
        return web.seeother("/")   #  跳转到你登陆成功后的主页面
del(session['logged-in'])
cas_login_url = cas_client.get_login_url(service_url=app_login_url)
raise web.seeother(cas_login_url) 

参考信息:https://pypi.org/project/cas_client/0.1.1/

posted @ 2019-01-09 18:00  Qingqiu_Gu  阅读(3021)  评论(0编辑  收藏  举报