如题,本司内部平台需要在钉钉移动端保持登录态。
已在设置cookies时,设置了过期时间,且微信等其他浏览器已正常,但测试测出来钉钉这边的登录态保持无效。
然后我这边简易地测了一下,发现我登录过网页,然后退出钉钉,再进入钉钉点开链接,还是需要登录,登录态没有保存下来,也就是说cookies是被清掉了。
想问下各位大佬,钉钉是不是会在退出应用时清除内部浏览器的cookies。如果是的话,这又要怎么解决,或者改换什么方案才能实现登录态的保存?
谢谢各位大佬解答!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
问题背景: 您希望在钉钉移动端保持内部平台的登录状态,通过设置cookies并指定过期时间来实现。然而,尽管在其他浏览器如微信中此方法能正常维持登录态,但在钉钉内使用时,一旦退出应用再重新进入,之前设置的cookies似乎被清除,导致用户需要重新登录。
分析与解答:
钉钉行为说明:钉钉确实有可能在应用退出时清理其内部浏览器的cookies,以保护用户隐私和数据安全。这符合多数应用程序对于会话管理的安全实践,确保用户信息不因长时间后台运行或应用重启而泄露。
解决方案探讨:
方案一:钉钉OAuth认证集成
考虑将您的内部平台与钉钉进行OAuth2.0授权登录集成。这样,用户通过钉钉账号登录后,钉钉会处理用户的认证过程,并在每次访问应用时通过Token验证身份,而非依赖于cookies。这种方式可以有效避免因cookies被清理而导致的登录态丢失问题。
方案二:单点登录(SSO)配置
如果您的内部平台支持SAML、OIDC等标准协议,可以通过配置钉钉作为身份提供方,实现与内部平台的单点登录。这样,用户只需在钉钉内一次登录,即可无缝访问所有授权应用,无需担心登录态丢失。
方案三:钉钉微应用开发与免登功能
开发一个钉钉微应用,并利用钉钉提供的免登(DingTalk Login Kit)功能。该功能允许用户在钉钉内直接扫码登录,由钉钉处理用户身份验证,从而绕过了浏览器cookies的限制,保证了登录态的持续性。
实施步骤简述:
注意事项:
综上所述,通过集成钉钉的认证体系或采用微应用免登方案,可以有效解决您目前遇到的登录态保持问题,同时提升应用的安全性和用户体验。