Vix*_*xed -3 php asp.net ajax jquery asp-classic
有没有办法通过不同的编程语言检查登录状态?现在我使用ajax在登录过程后同时启动的三个会话(同名).
现在,login.html表单在三个文件上处理:login.aspx,login.asp和login.php,但它似乎太慢而且很奇怪.我将同一家公司的三种不同服务合并为一种,在重新构建用户和mysql中的其他常用表后,一切似乎都运行良好,但我真的很害怕安全漏洞.
只是为了让你知道,我必须在任何ajax回调之前检查登录会话状态,所以如果用户正在使用通过Ajax调用PHP的ASP页面,可能是会话在ASP上仍处于活动状态,但是已过期php文件.
任何有效的方法一次检查所有?我也可以接受cookie解决方案,但如何让它在php,asp和.net之间可读?
这听起来像是对我的单点登录.我们试着分解问题.
有没有办法通过不同的编程语言检查登录状态?
你对所使用的语言并不感兴趣.给定相同信息和算法的任何语言都会成功解码相同的加密数据.我猜你会遇到问题,因为关于这一点的PHP的应用程序逻辑与ASP的不同.所以对于第一点,你可以
在所有应用程序中实现/规范化相同的会话检查逻辑.这可能是不可行的,因为你可能在这里使用Laravel,而在另一方面使用ASP.Net,这两者在这方面可能略有不同.如果可以,可以这样做,或......
查看JSON Web令牌.我不会详细介绍,但这些或多或少都是为解决这类问题而设计的.它们也易于处理,但请注意,在使用它们进行用户身份验证时,您必须注意一些方面.
[...]只是为了让你知道,我必须在任何ajax回调之前检查登录会话状态,所以如果用户正在通过Ajax调用PHP的ASP页面,那么会话可能仍然是活动的ASP,但在php文件上过期了.
不是那个人,但有些概念在这里有些变形.会话不会在文件上过期; 它们通常设置为给定的到期时间和给定的域.所以一般来说,从PHP应用程序打开并存储在cookie上的会话,然后从ASP读取的会话应该不会改变,因为两个应用程序的会话处理逻辑之间不存在差异.
任何有效的方法一次检查所有?我也可以接受cookie解决方案,但如何让它在php,asp和.net之间可读?
对于我上面建议的两种解决方案,特别是对于cookie一,在会话处理方面使应用程序完全相同是很重要的.虽然这对于JWT来说是微不足道的(因为应用程序方面几乎没有任何逻辑),如果身份验证逻辑来自其他人的代码(如在框架中),这可能会对cookie更加困难.我没有问过单点退出,此时我不敢问:).但这些是一些指导方针:
如果要进入cookie路由,请注意cookie的域名.Cookie通常对来自网站域名(name.com)的每个请求都有效,但您可能在子域名下拥有某些应用程序(例如,phpapp.name.com).在这种情况下,请确保从给定应用程序创建的cookie对整个域有效,而不仅仅对子域有效.并在相同域下的子域/页面上提供应用程序.Cookie不能跨域工作,您必须处理它,因为cookie域策略是在浏览器级别实施的.
启动三个AJAX调用意味着触发三个登录过程.我想所有这些都将在将来的某个时候终止,并且所有这些都将存储/重写cookie.如果应用程序理解相同的cookie,它是强制性的,你打开登录过程只是一个人.这将存储cookie,然后可以从第二个应用程序中的页面自动选择应用程序,让您无缝过渡到第二个应用程序中的记录状态.
JWT通常需要一些JS工作,您可能会喜欢,因为可以在所有应用程序中轻松加载相同的脚本.另一方面,您可以确定处理JWT的不同服务器库对您来说都是相同的,从而确保兼容性.
就个人而言,我会研究JSON Web Tokens.
| 归档时间: |
|
| 查看次数: |
300 次 |
| 最近记录: |