def testDiscuzAuthcode(self): s= Discuz.discuzAuthcode("123456", "123456", Discuz.ENCODE, 1000) print s self.assertTrue( Discuz.discuzAuthcode(s, '123456', Discuz.DECODE,1000)=="123456") s= Discuz.discuzAuthcode("中文", "中文密码", Discuz.ENCODE, 1000) self.assertTrue( Discuz.discuzAuthcode(s, '中文密码', Discuz.DECODE,1000)=="中文") s= Discuz.discuzAuthcode(u"中文".encode('utf-8'), u"中文密码".encode('utf-8'), Discuz.ENCODE, 1000) self.assertTrue( Discuz.discuzAuthcode(s, u'中文密码'.encode('utf-8'), Discuz.DECODE,1000)==u"中文".encode('utf-8'))
def testParse(self): print Discuz.parse_str(Discuz.discuzAuthcode('9949DdD0eUd4j+HIq8SIR4zDxr02OKaqn2+0D8X0+XDuZNs17mpg7K5xXdTe/qHLBul0p25SD+Q', settings.API_KEY,Discuz.DECODE))
def index(request): ''' 接受来自ucenter的调用 qs 是一个词典,action,time每次均会有,其它的根据实际的情况有不同的参数 通常url参数会有code,time但test action可能没有,下面代码需要重构,等确定那些有那些没有 ''' #目前不能处理非gbk编码 code=request.REQUEST.get('code','').encode('gbk') try: time_t=int(request.REQUEST.get('time',0)) except: time_t=0 qs=Discuz.parse_str(Discuz.discuzAuthcode(code, settings.API_KEY,Discuz.DECODE)) log(qs) time=int(qs.get('time',0)) log("time=%s&code=%s" %(time_t,code)) #timestamp = Discuz.unixTimestamp() if time_t and (time_t - time> 3600): #3600秒 延迟 return HttpResponse('Authracation has expiried') if not qs: return HttpResponse('Invalid Request') action = qs.get('action','') if action=='test': #测试 return HttpResponse(settings.API_RETURN_SUCCEED) elif action=='deleteuser': #删除用户 return API().delete_user(qs.get('ids','')) elif action=='renameuser': #改名用户 return API().rename_user(qs.get('uid',0),qs.get('oldusername'),qs.get('newusername')) elif action=='updatepw': #更新用户密码 return API().update_pw(qs.get('username',''),qs.get('password','')) elif action=='gettag': #获得tag return API().get_tag(qs.get('id','')) elif action=='synlogin': #同步登录 return API(request).syn_login(qs.get('uid',0)) elif action=='synlogout': #同步退出 return API(request).syn_logout() elif action=='updatebadwords': #更新过滤词 #return API().update_bad_words() return HttpResponse(settings.API_RETURN_FORBIDDEN) elif action=='updatehosts': return HttpResponse(settings.API_RETURN_FORBIDDEN) elif action=='updateapps': return HttpResponse(settings.API_RETURN_FORBIDDEN) elif action=='updateclient': return HttpResponse(settings.API_RETURN_FORBIDDEN) elif action=='updatecredit': return HttpResponse(settings.API_RETURN_FORBIDDEN) elif action=='getcreditsettings': return HttpResponse(settings.API_RETURN_FORBIDDEN) elif action=='getcredit': return HttpResponse(settings.API_RETURN_FORBIDDEN) return HttpResponse(settings.API_RETURN_SUCCEED)