c#自动登录到网站使用桌面应用程序
本文关键字:桌面 应用程序 网站 登录 | 更新日期: 2023-09-27 18:02:19
我有一个PHP Laravel 5.2
网站。
我想使用C#
创建一个桌面应用程序(类似于windows的下拉框应用程序),其中将有一个按钮"打开web",单击登录用户(在桌面应用程序中)应该登录到网站而无需询问任何凭据。
在网站中,我使用基于api_token
的认证。
有一种可能的方法,我可以在网站上做一个端点来检查令牌,如果正确,让用户登录,但我认为这是不太安全的。
我已经检查了请求-响应日志fiddler的下拉框"打开dropbox.com"按钮,它不设置请求中的任何令牌。
问题是我怎样才能实现它?
一种方法是:
- 从桌面应用程序中的服务器请求一次使用(nonce)唯一代码,该代码指的是您想以 身份登录的用户
打开一个地址包含一次性代码的浏览器进程,就像这样:
http://www.your.server.com/the/page/you/want?auth=29874298798724982734
Dropbox这样做的方式是在磁盘上创建一个临时html文件,其中包含一些javascript代码,将"表单"发布到服务器上的安全页面
https://www.dropbox.com/desktop_login
form fields:
buildno=Dropbox-win-7.4.30
u=home
c=en_US
i=<some number>
n data-nonce-c=<some large hex string>
然后生成一个浏览器进程来打开这个文件。
要查看此文件,请使用Dropbox应用程序中的global链接,然后在初始网页加载后立即按Esc并获取url,该url应该如下所示:
file://C:/users/USERNAME/appdata/local/temp/RANDOM.html