当前位置:   article > 正文

Node-RED dashboard 制作注册/登录页面_node-red 怎么做登录界面

node-red 怎么做登录界面

效果:完成用户注册及登录,并实现基础持久登录方法

页面部分:

  1. <div style = "text-align: center;">
  2. <div style="font-size: 14px; color: #006eff; margin-bottom: 30px; margin-top: 10px;">
  3. 即日起所有用户均需登录,请自行注册账号,推荐使用邮箱前缀
  4. </div>
  5. <div id = "Login" class="login_container">
  6. <h2>登录</h2>
  7. <form id="loginForm" onsubmit="submitForm(event)">
  8. <div class="form-group">
  9. <label for="username">账号:</label>
  10. <input type="text" id="username" name="username" required>
  11. </div>
  12. <div class="form-group">
  13. <label for="password">密码:</label>
  14. <input type="password" id="password" name="password" required>
  15. </div>
  16. <div class="form-group">
  17. <button type="button" onclick="showRegister()" class="left-button">注册</button>
  18. <button type="submit" class="right-button">登录</button>
  19. </div>
  20. </form>
  21. </div>
  22. <div id="register" class="login_container" style="display: none;">
  23. <h2>注册</h2>
  24. <form id="registerForm" onsubmit="registerForm(event)">
  25. <div class="form-group">
  26. <label for="username">账号:</label>
  27. <span class="error-message">请使用邮箱前缀注册</span>
  28. <input type="text" id="registerUsername" name="username" required>
  29. </div>
  30. <div class="form-group">
  31. <label for="password">密码:</label>
  32. <input type="password" id="registerPassword" name="password" required>
  33. </div>
  34. <div class="form-group">
  35. <label for="confirm_password">确认密码:</label>
  36. <span id="passwordError" class="error-message"></span>
  37. <input type="password" id="confirmPassword" name="confirm_password" required>
  38. </div>
  39. <div class="form-group">
  40. <button type="button" onclick="showLogin()" class="left-button">返回登录</button>
  41. <button type="submit" class="right-button">注册</button>
  42. </div>
  43. </form>
  44. </div>
  45. </div>

JS部分:利用localStorage进行基础信息存储,此处可以加入更多的逻辑,来实现复杂的验签方式。

  1. <script>
  2. var value = {};
  3. this.scope.action = function() { return value; }
  4. devices_list = {};
  5. (function(scope) {
  6. scope.$watch('msg', function(msg) {
  7. dashboard_toolbar_init()
  8. if (msg) {
  9. switch (msg.type) {
  10. case 'user_exsit':
  11. alert('账号已存在')
  12. msg.type = ''
  13. break;
  14. case 'user_success':
  15. alert('注册成功')
  16. msg.type = ''
  17. break;
  18. case 'login_err':
  19. alert("账号/密码错误");
  20. msg.type = ''
  21. break;
  22. case 'login_success':
  23. show_login_info(msg.username)
  24. msg.type = ''
  25. break;
  26. default:
  27. break;
  28. }
  29. }
  30. });
  31. })(scope);
  32. function dashboard_toolbar_init() {
  33. /* 自己想显示的toolbar设计 */
  34. }
  35. function usr_exit() {
  36. var isLoggedIn = localStorage.getItem('isLoggedIn');
  37. var usrname = localStorage.getItem('usrname');
  38. if ((isLoggedIn == null) || (isLoggedIn == 'false') || (usrname == null)) {
  39. return;
  40. }
  41. if(confirm("是否确认退出")){
  42. var login_btn = document.getElementById('login_btn');
  43. login_btn.innerHTML = '未登录'
  44. localStorage.setItem('isLoggedIn', false);
  45. localStorage.setItem('usrname', '');
  46. value.type = "Login"
  47. value.data = 'null';
  48. document.getElementById("save_pb").click();
  49. }
  50. }
  51. function show_login_info(username) {
  52. var login_btn = document.getElementById('login_btn');
  53. login_btn.innerHTML = username + ' | 退出'
  54. localStorage.setItem('isLoggedIn', true);
  55. localStorage.setItem('usrname', username);
  56. value.type = "go_others"
  57. value.data = '首页';
  58. document.getElementById("save_pb").click();
  59. }
  60. function submitForm(event) {
  61. event.preventDefault();
  62. var username = document.getElementById("username").value;
  63. var password = document.getElementById("password").value;
  64. var login_btn = document.getElementById('login_btn');
  65. value.type = "submitForm"
  66. value.data = {}
  67. value.data.usrname = username
  68. value.data.psswd = password
  69. document.getElementById("save_pb").click();
  70. }
  71. function showRegister() {
  72. document.getElementById("Login").style.display = "none";
  73. document.getElementById("register").style.display = "inline-block";
  74. }
  75. function showLogin() {
  76. document.getElementById("register").style.display = "none";
  77. document.getElementById("Login").style.display = "inline-block";
  78. }
  79. function registerForm(event) {
  80. event.preventDefault();
  81. var username = document.getElementById("registerUsername").value;
  82. var password = document.getElementById("registerPassword").value;
  83. var confirmPassword = document.getElementById("confirmPassword").value;
  84. if (password !== confirmPassword) {
  85. document.getElementById("passwordError").textContent = "密码不一致";
  86. return;
  87. } else {
  88. document.getElementById("passwordError").textContent = "";
  89. value.type = "registerForm"
  90. value.data = {}
  91. value.data.usrname = username
  92. value.data.psswd = password
  93. document.getElementById("save_pb").click();
  94. }
  95. }
  96. </script>

在其他页面可对登录用户及状态进行检查,未登录则跳转到Login页面,登录则显示用户名

  1. function check_usr_login_status() {
  2. var isLoggedIn = localStorage.getItem('isLoggedIn');
  3. var usrname = localStorage.getItem('usrname');
  4. if ((isLoggedIn == null) || (isLoggedIn == 'false') || (usrname == null)) {
  5. value = {}
  6. value.type = "Login"
  7. value.data = 'null';
  8. document.getElementById("save_pb").click();
  9. } else {
  10. /*set toolbar name*/
  11. g_login_usrname = usrname
  12. }
  13. }

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

闽ICP备14008679号