我想在我的django服务器中激活我的用户,当他们通过电子邮件中的链接跟踪令牌时,如下所示:
url(r'^user-activation/(?P<id>\w+)/', views.UserActivation.as_view()),
我有这种模式
public static string Encript(string strData)
{
string hashValue = HashData(strData);
string hexHashData = ConvertStringToHex(hashValue);
return hexHashData;
}
public static string HashData(string textToBeEncripted)
{
//Convert the string to a byte array
Byte[] byteDataToHash = System.Text.Encoding.Unicode.GetBytes(textToBeEncripted);
//Compute the MD5 hash algorithm
Byte[] byteHashValue = new System.Security.Cryptography.MD5CryptoServiceProvider().ComputeHash(byteDataToHash);
return System.Text.Encoding.Unicode.GetString(byteHashValue);
}
public static string ConvertStringToHex(string asciiString)
{
string hex = "";
foreach (char c in asciiString)
{
int tmp = c;
hex += String.Format("{0:x2}", (uint) System.Convert.ToUInt32(tmp.ToString()));
}
return hex;
}
但是它回归了404.我搜索了很多,似乎什么都没有用。我做错了什么?
我无法找到任何可以阅读的答案
https://docs.djangoproject.com/es/1.9/ref/urls/
,也不
https://docs.djangoproject.com/es/1.9/topics/http/urls/
编辑:
我已阅读帖子
但是没有关于同时接收连字符和点的例子,这是导致我混淆的原因。
明确的答案解决了我的问题。感谢
答案 0 :(得分:4)
您的令牌还包含.
和-
字符,因此您还需要正则表达式匹配它们 - 它目前只匹配字符
url(r'^user-activation/(?P<id>[\w\.-]+)/', views.UserActivation.as_view()),
答案 1 :(得分:4)
\w
将匹配任何字母数字字符和下划线;这相当于集合[a-zA-Z0-9_]
。你有.
和-
等各种不匹配的角色,它们一定会失败。
您需要[\w.-]
来加入它们。
检查regex syntax上的python doc。