首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用一次性令牌的URL

不使用一次性令牌的URL
EN

Stack Overflow用户
提问于 2018-01-28 15:38:57
回答 1查看 331关注 0票数 0

我正试图建立一个登录系统,用户注册后,需要点击一个链接,一个激活电子邮件。我在方法中创建令牌:

代码语言:javascript
复制
def get_context_data(
        self, request, user, context=None):
    if context is None:
        context = dict()
    current_site = get_current_site(request)
    if request.is_secure():
        protocol = 'https'
    else:
        protocol = 'http'
    token = token_generator.make_token(user)
    uid = urlsafe_base64_encode(
        force_bytes(user.pk))
    context.update({
        'domain': current_site.domain,
        'protocol': protocol,
        'site_name': current_site.name,
        'token': token,
        'uid': uid,
        'user': user,
    })
    return context

这里的问题是生成的令牌如下所示:

代码语言:javascript
复制
http://127.0.0.1:8000/user/activate/b'NjA'/4t8-9fad2c2dc78ecf8a1228/

这个网址不起作用,因为urlsafe_base64_encode(force_bytes(user.ok))会产生一些在url中不起作用的毛茸茸的字符组合。我得到以下错误。

未找到页面(404)请求方法:获取请求URL:http://127.0.0.1:8000/user/activate/b&

如您所见,url在#&之后被切断。如何以一种在url中工作的方式对user.pk进行编码?

EN

回答 1

Stack Overflow用户

发布于 2018-01-28 16:28:21

如果有人有同样的问题。问题是对python2.0的更新

这修复了它:decode(uidb64)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48488079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档