现在有没有什么好的方案可以实现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发送给用户,如果验证时匹配,登录成功。
你还可以设置一个过期时间,一起存起来。
最佳实践:按照 @incNick 说的做,和友盟等需要用户名密码的网站谈合作,让他们给你一个登录的API,你们就可以招程序员去开发统一认证系统了
一个不是办法的办法,利用QQ客户端保存“密码”。国内的账号系统多数都可以直接或者间接绑定到QQ账号上。直接:间接: 百度站长下面要解决的就是多个运营人员如何登录QQ的问题了。共享二维码怎么样?
给运营人员的电脑配置代理,利用“中间人攻击”的方法给浏览器设置Cookie。 运营人员通过代理试图登录网站时,代理程序拦截这个HTTP请求,伪装成普通用户登录第三方网站获取Cookie,然后将登录成功的响应返回给运营人员的浏览器。
1password,不谢