xiaochuanworld

xiaochuanworld

这家伙有点懒,还没写个性签名!

  • 财富值825
  • 威望值0
  • 总积分1025

个人信息

  • 回复了 的回答
    1. 事实上按照你的流程,能够修改密码依赖于签名正确和有效期内,此时你是可以信赖adminuser这个用户名,但是需要在post操作时再次校验,(个人不推荐这种做法)
    2. 一般忘记密码这种流程,我都会在表中设计字段存储一个token带有效期,然后只认token,用户名也不用传了,传用户名基本没有意义。yii2 basic application 中的例子也是这么使用的。
      希望对你有用。

    很好的解决方法,谢谢你的建议

  • 回复了 的回答
    $post['Admin']['adminuser']=$adminuser
    

    $adminuser有值没?
    $post['Admin']这个数据存在不?

    这个是忘记密码后,邮箱验证里面的链接,这个页面直接改密码,由于安全原因,不能让游客POST回来账号名,不然可以通过修改这个POST 的包改到别的账号了,请问还有没有其他方法呢?

  • 回复了 的回答
    $post['Admin']['adminuser']=$adminuser
    

    $adminuser有值没?
    $post['Admin']这个数据存在不?

    精辟,理解到你说的了,如果要实现我的需求,有什么办法能将GET回来的值,追加到到POST上来的数据呢?全局变量这个方向可以吗?

  • 回复了 的回答

    createToken方法贴出来

    好吧,。这个问题只能绕过了,谢谢你的解答,你开个回帖吧,我采纳你

  • 回复了 的回答

    createToken方法贴出来

    解决方案是可以这样子,可是技术上是在YII是没能实现我的需求吗?

  • 回复了 的回答

    createToken方法贴出来

    Yii::$app->getUser()->getIdentity()这个我知道的,可是这个是忘记密码的界面,没有登录信息的,,我没有要在POST数据里面获取用户名,本来在表单里面没有设定这个,,我想吧浏览器地址栏获取到的$adminuser,追加进去$post的数据里面

  • 回复了 的回答

    createToken方法贴出来

    Yii::$app->getUser()->getIdentity()这个我知道的,可是这个是忘记密码的界面,没有登录信息的,,我没有要在POST数据里面获取用户名,本来在表单里面没有设定这个,,我想吧浏览器地址栏获取到的$adminuser,追加进去$post的数据里面

  • 回复了 的回答

    $adminuser= Yii::$app->request->get('adminuser'); //有值
    $token= Yii::$app->request->get('token');
    $mytoken=$model->createToken($adminuser,$timestamp); //so排除系统因素, 值在这个方法里面应该被修改了
    。。。。
    $post['Admin']['adminuser']=$adminuser; //值变成了 null

    看了下其它回答,首先不要怀疑 get和post的混用, 这个没有任何问题。
    最开始拿到值了,后面变成null,所以你只需要找到 $adminuser 这个变量在哪个地方被篡改了 就可以解决问题了
    如上所述,建议检查 createToken 方法,看看是不是引用传参 ..

    --------------补充分割线

    反复沟通后,确认了问题在于: 提交找回密码的post请求中,没有附带相关的get参数。
    在这边补充备注一下,希望对碰到同类问题的phper有帮助。
    有兴趣的朋友推荐了解下 http协议中 get 与 post请求的差异
    就不单独回复了 😃

    $adminuser= Yii::$app->request->get('adminuser');//这个主要获取的是浏览器上的值,能够正确GET到的。
    只是这个值传不去POST上来的数据里面,我想要追加post的数据,把GET到的$adminuser传过去

  • 回复了 的回答

    createToken方法贴出来

    这个AJAX提交地址的URL不包含账号信息的,因为操作的账号名,不能让用户有可以能改得到的地方才行,如果用户看得懂JS,修改账号名称,就可能改掉别人的密码了

  • 回复了 的回答

    createToken方法贴出来

    我是通过ajax提交的,现在通过‘return json_encode($post,JSON_UNESCAPED_UNICODE);’返回POST上去的数据,再在前端JAVASCRIPT里用console.log($post),打印出来的POST,所以视图文件并没有报错

经理 等级规则
1025/2000
资料完整度
10/100
用户活跃度
0/100

Ta的关注

2

Ta的粉丝

2

Ta的访客

12