我有一个PHP Laravel 5.2
网站。
我想使用C#
创建一个桌面应用程序(类似于Windows的drop-box应用程序),其中会有一个“Open web”按钮,单击登录用户(在桌面应用程序中) )应该登录到网站而不要求任何凭据。
在网站中,我使用基于api_token
的身份验证。
有一种可能的方法是我可以在网站上设置一个终点来检查一个make用户登录的令牌是否正确,但我认为它不太安全。
我已经在fiddler中检查了请求 - 响应日志的下拉框“Open dropbox.com”按钮,它没有在请求中设置任何令牌。
问题是如何实现它?
答案 0 :(得分:1)
一种方法可以做到以下几点:
使用包含此一次性使用代码的地址打开一个webbrowser进程,如下所示:
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>
然后它产生一个webbrowser进程来打开这个文件。
要查看此文件,请使用Dropbox应用中的globe链接,然后在初始网页加载后立即点击Esc并抓取应如下所示的网址:
file://C:/users/USERNAME/appdata/local/temp/RANDOM.html
然后打开此文件进行检查。