Home  >  Article  >  Backend Development  >  现在有没有什么好的方案可以实现web网站免密码登录?

现在有没有什么好的方案可以实现web网站免密码登录?

WBOY
WBOYOriginal
2016-06-06 20:14:541820browse

现在有没有什么好的方案可以实现web网站免密码登录?

背景:公司运营人员多,和第三方合作的也比较多,很多运营人员都有第三方合作网站的账号密码,但是如果运营人员离职,这个密码可能遗失或者泄露。所以需要一个账户管理系统统一管理这些第三方的账号。同时,直接提供账号和密码给运营人员使用的方式也不好,可能会泄露或者密码被修改等等麻烦问题。

所以,现在希望这个系统统一管理用户账号和密码,当有同事需要使用账号的时候,直接由系统提供一个url链接给他,这个url地址里面是加密的账号和密码以及要登录的网站信息,他通过点击这个url链接直接就可以登录到第三方网站。

举例:运营人员A要登录友盟查看数据,我不用直接告诉他我们在友盟的账号和密码,只需要在账号管理系统里面生成一个url提供给他,他点击这个链接就可以登录友盟网站。类似这样的功能,有什么好的实现方案么?或者有现成的解决方案么?商业的也可以考虑。

说明:现在网上找了一下,貌似都是以浏览器扩展的方式实现?这个是浏览器扩展把生成的url链接里面的密码解析出来自动填充到登录表单里面的么?比如:https://lastpass.com/

各位有没有什么好的建议或者方案? 非常感谢!

回复内容:

现在有没有什么好的方案可以实现web网站免密码登录?

背景:公司运营人员多,和第三方合作的也比较多,很多运营人员都有第三方合作网站的账号密码,但是如果运营人员离职,这个密码可能遗失或者泄露。所以需要一个账户管理系统统一管理这些第三方的账号。同时,直接提供账号和密码给运营人员使用的方式也不好,可能会泄露或者密码被修改等等麻烦问题。

所以,现在希望这个系统统一管理用户账号和密码,当有同事需要使用账号的时候,直接由系统提供一个url链接给他,这个url地址里面是加密的账号和密码以及要登录的网站信息,他通过点击这个url链接直接就可以登录到第三方网站。

举例:运营人员A要登录友盟查看数据,我不用直接告诉他我们在友盟的账号和密码,只需要在账号管理系统里面生成一个url提供给他,他点击这个链接就可以登录友盟网站。类似这样的功能,有什么好的实现方案么?或者有现成的解决方案么?商业的也可以考虑。

说明:现在网上找了一下,貌似都是以浏览器扩展的方式实现?这个是浏览器扩展把生成的url链接里面的密码解析出来自动填充到登录表单里面的么?比如:https://lastpass.com/

各位有没有什么好的建议或者方案? 非常感谢!

如果是和第三方深度合作的话可以要求他们提供令牌支持。你的服务器保存用户名和密码,通过第三方api获取一个token,然后你们的职员可以用这个token去第三方而不必再次输入用户名密码了,你觉得呢?

lastpass 和你说的不是一个东西,lastpass 做的就是记住了你的用户名和密码,然后帮你提交表单。
你需要的是不需要用户名和密码也授权查看一些数据,如果第三方网站支持 token 那么就很好做了,如果不支持那你想做也做不了。

我感觉挺简单的啊。
你可以存起来一个随机字符串,然后用自己的加密方法将其和密码配合进行加密,将加密后的字符串传给用户就行。

$id = $user['id'];
$password = $user['password'];
$rand = "";//根据自己的方法生成一个随机字符串,并把它存起来
$token = md5(sha1($id.$rand).$password);//将其进行一定方式的加密,只做例子,可以自己设定

然后将这个$id和$token发送给用户,如果验证时匹配,登录成功。
你还可以设置一个过期时间,一起存起来。

  1. 最佳实践:按照 @incNick 说的做,和友盟等需要用户名密码的网站谈合作,让他们给你一个登录的API,你们就可以招程序员去开发统一认证系统了

  2. 一个不是办法的办法,利用QQ客户端保存“密码”。国内的账号系统多数都可以直接或者间接绑定到QQ账号上。直接:现在有没有什么好的方案可以实现web网站免密码登录?间接: 百度站长下面要解决的就是多个运营人员如何登录QQ的问题了。共享二维码怎么样?

  3. 给运营人员的电脑配置代理,利用“中间人攻击”的方法给浏览器设置Cookie。 运营人员通过代理试图登录网站时,代理程序拦截这个HTTP请求,伪装成普通用户登录第三方网站获取Cookie,然后将登录成功的响应返回给运营人员的浏览器。

1password,不谢

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn