当前位置:   article > 正文

12月13日:跟着猫叔写代码,fastadmin中Api相关只是_fastadmin api

fastadmin api

Api权限管理

api常用返回信息实例

api获取所有方法,都在common目录下cotroller文件夹中Api.php中

  1. /**
  2. * 需要登录的接口
  3. *
  4. */
  5. public function test2()
  6. {
  7. //$this->success('返回成功', ['action' => 'test2']);
  8. //判断当前用户是否登录
  9. //$this->success('返回成功', $this->auth->isLogin());
  10. //获取登录用户id
  11. //$this->success('返回成功', $this->auth->id);
  12. //获取登录用户所有信息,但不包含token
  13. //$this->success('返回成功', $this->auth->getUser());
  14. //获取当前用户token
  15. // $this->success('返回成功', $this->auth->getToken());
  16. //获取用户的基本信息,包含token不包含用户密码
  17. //$this->success('返回成功', $this->auth->getUser());
  18. //获取当前用户请求路径
  19. $this->success('返回成功', $this->auth->getRequestUri());
  20. }
未登录返回数据
判断当前用户是否登录
获取登录用户id
获取登录用户所有信息,但不包含token
获取当前用户token
获取用户的基本信息,包含token不包含用户密码
获取当前用户请求路径

模拟小程序登录

  1. /**
  2. * 无需登录的接口
  3. *
  4. */
  5. public function test1()
  6. {
  7. //模拟小程序端用户传入用户名
  8. $openid = "123456";
  9. $username="123456";
  10. //查询数据库user表中数据
  11. $search_res=Db::name('user')->whereOr('username',$username)->whereOr('openid',$openid)->find();
  12. if ($search_res){
  13. //如果查到该用户则返回用户id
  14. $this->success('返回成功',$search_res['id']);
  15. }else{
  16. $registerRes = $this->auth->register($username,$username,'','',['openid'=>$openid]);
  17. //如果没有查询到,即返回注册
  18. $this->success('执行注册',$registerRes);
  19. }
  20. }
如果执行代码未查询到该用户,则进入执行注册

已有账户,返回账户id

执行查询用户成功,跳转到登录

修改代码,用户可直接登录
直接登录

遇到的问题以及解决方法

风险

当前学习中数据库比对是使用whereor()方法,但是在实际开发中这种操作会有风险,就是openid和username只有一项符合,即可直接登录

解决办法

第一种

执行注册时监听用户的id和token

注册成功后监听当前用户id和token
监听到的token和id,登录后z展示与id相符合的用户

第二种

编写退出操作,执行成功后,不会直接登录,会退出让用户再次进行登录操作

注册后退出操作,让用户重新进行登录
执行注册,重新登陆

登录之后的token怎么处理

token如何在传递中如何带上数据

两种方法

第一种方法:body中带上token
第二种方法:header中带上token

token处理官方文档

token的官方文档

每次只能使用当前获取到的token才可进行登录

Token获取到之后,操作token的方法都在common目录下的Token.php中

前端官方文档(前端 - FastAdmin框架文档 - FastAdmin开发文档

 table(常用)(表格的详细介绍以及使用:一张图解析FastAdmin中的表格列表的功能 - FastAdmin问答社区

表单(常用)(详细文档:前端 - FastAdmin框架文档 - FastAdmin开发文档

动态下拉菜单(官方文档:动态下拉(SelectPage) - FastAdmin框架文档 - FastAdmin开发文档

前端添加

搜索添加

 后端引入js的方法

(注入js)

  1. <script>
  2. function zhuruJs(url) {
  3. let temp = document.createElement('script');
  4. temp.setAttribute('type','text/javascript');
  5. temp.src = url;
  6. document.head.appendChild(temp);
  7. }
  8. zhuruJs(location.origin + '/assets/js/ceshi.js');
  9. </script>

可以分别放入你想显示的前端页面,如果想显示在某个模块下的所有页面,则将这段代码放入模块的js文件中即可

权限管理树形结构实现

首先需要找到当前后台权限管理树形结构的源代码位置

 jstree的中文官网(jsTree 中文网

首先需要在控制器的ceshi.php中声明数据

  1. public function testtree(){
  2. $data = '[{
  3. "id": 1,
  4. "parent": #,
  5. "text":"控制台",
  6. "type":"menu",
  7. "state":{
  8. "selected":true
  9. }
  10. },{
  11. "id": 13,
  12. "parent": 1,
  13. "text":"查看",
  14. "type":"menu",
  15. "state":{
  16. "selected":true
  17. }
  18. },{
  19. "id": 16,
  20. "parent": 1,
  21. "text":"删除",
  22. "type":"menu",
  23. "state":{
  24. "selected":true
  25. }
  26. },{
  27. "id": 2,
  28. "parent": #,
  29. "text":"菜单",
  30. "type":"menu",
  31. "state":{
  32. "selected":true
  33. }
  34. },{
  35. "id": 15,
  36. "parent": 2,
  37. "text":"增加",
  38. "type":"menu",
  39. "state":{
  40. "selected":true
  41. }
  42. },{
  43. "id": 19,
  44. "parent": 2,
  45. "text":"编辑",
  46. "type":"menu",
  47. "state":{
  48. "selected":true
  49. }
  50. }]';
  51. }

然后需要在js文件中引入jstree并且使用ajax传递数据

 前端页面,空标签用来接收

 由于我的有问题,无法实现

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/132029
推荐阅读
相关标签
  

闽ICP备14008679号