python – 将令牌传递给客户端
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 将令牌传递给客户端,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1929字,纯文字阅读大概需要3分钟。
内容图文
![python – 将令牌传递给客户端](/upload/InfoBanner/zyjiaocheng/788/7c9e0c7b382040f8bff47fef0a908927.jpg)
我正在开发一个iOS应用程序并使用Django作为后端.我在Django中使用了两个应用程序
> Django OAuth Toolkit,支持OAuth身份验证
> Python Social Auth支持社交认证
社会认证过程应该是:
> GET localhost / login / {application}
>应用程序站点上的身份验
>重定向到localhost / complete / {application}
>获取{application}的访问令牌
>使用我的服务器访问令牌创建一个新用户,并将其与{application}的访问令牌相关联
>重定向到localhost / accounts / profile
然后,我可以使用我的服务器访问令牌与{application}进行通信.
但是客户端会看到浏览器以localhost / login / {application}开头并以localhost / accounts / profile结尾,但仍然不知道我的服务器的访问令牌是什么,所以我的问题是如何将访问令牌传递给客户端?
一种解决方案是使用访问令牌重定向为localhost / accounts / profile?token = MyServerToken,但是如何在重定向到配置文件URL时添加参数?
解决方法:
对于您的用户,您可能已经拥有了Django会话所需的内容.也就是说,如果您正在使用会话中间件(如果没有它,此类型的auth几乎是不可能的),您的身份提供者特定令牌通常将填充在SocialUser模型的extra_data dict中,以用于所讨论的特定提供者.
例如,假设您有对Django用户模型的引用(让我们称之为用户):
access_token = user.social_auth.get(provider='google-oauth2').extra_data['access_token']
不幸的是,细节会根据您正在使用的后端而有所不同.请记住,这些工具旨在让用户针对您的应用进行身份验证,而不是让您针对各种身份提供商公开的特定于产品的API执行任意操作.
至于将这些令牌传递给客户端,我需要更多地了解您的用例.有可能是身份提供者在其身份验证流程中在客户端上设置了一些会话cookie.例如,如果您使用Facebook登录,他们会设置一些Cookie,这些Cookie会由Facebook客户端javascript API自动检索.因此,服务器和客户端之间不需要明确共享令牌.
否则,如果您必须自己执行此操作,请将它们存储在安全会话cookie中,如下所示:
response.set_cookie(social_auth_tokens,
value=your_data_here,
max_age=None, #cookie will expire at end of user session
expires=None,
path='/',
domain=None, #only readable by this domain
secure=True, #only transmitted over https
httponly=False) #readable by scripts running on the page
内容总结
以上是互联网集市为您收集整理的python – 将令牌传递给客户端全部内容,希望文章能够帮你解决python – 将令牌传递给客户端所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。