我正在构建一个具有独立前端(Angular或其他JS库)和后端(Django)的应用程序.为了确保发送到服务器的请求的某些安全性,我想附加一个url参数说server/someurl?unique_id=Something-unique.
我将这个独特的代码存储在机器上localStorage一段特定的时间.但是,我想在服务器端使用某种函数设置此代码,这不仅会生成此随机字母数字文本,还会根据传入请求对其进行验证.
例如:
当用户打开应用程序时,它将发送一个server/setCode将使用此随机生成的字符串进行响应,我将Local Storage使用JS 存储该字符串.
在传出请求中,说明server/getdata?someparameter=some_data&unique_id=string_from_local_storage服务器可以针对生成函数进行验证,然后仅处理其余的URL.
是否有可以帮助我实现生成和验证的包或模块?我希望我可以传达我想要的东西,因为我无法找到任何解决方案,只能编写函数来生成和测试自己.
我正在开发一个Django项目,除了标准的自动递增ID整数字段外,Thing将拥有一个唯一的10位密钥.我使用一个简单的随机数函数来创建它.[我确信有更好的方法可以做到这一点]
创建Thing时,会创建一个10位数的Key.我使用.validate_unique()来检查Key的唯一性.如果它不是唯一的,有没有一种简单的方法可以递归调用Key生成器(makeKey())直到它通过?代码如下:
Models.py:
class Thing(models.Model):
name=models.CharField(max_length=50)
key=models.IntegerField(unique=True)
Run Code Online (Sandbox Code Playgroud)
Views.py:
def makeKey():
key=''
while len(key)<10:
n=random.randint(0,9)
key+=`n`
k=int(key)
#k=1234567890 #for testing uniqueness
return k
def createThing(request):
if ( request.method == 'POST' ):
f = ThingForm(request.POST)
try:
f.is_valid()
newF=f.save(commit=False)
newF.key=makeKey()
newF.validate_unique(exclude=None)
newF.save()
return HttpResponseRedirect(redirect)
except Exception, error:
print "Failed in register", error
else:
f = ThingForm()
return render_to_response('thing_form.html', {'f': f})
Run Code Online (Sandbox Code Playgroud)
谢谢