The Bubble web UI in VueJS
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

66 строки
2.5 KiB

  1. <!-- Copyright (c) 2020 Bubble, Inc. All rights reserved. For personal (non-commercial) use, see license: https://getbubblenow.com/bubble-license/ -->
  2. <template>
  3. <div>
  4. {{messages.message_authenticating_app_login}}
  5. </div>
  6. </template>
  7. <script>
  8. import { mapState, mapGetters, mapActions } from 'vuex'
  9. import { util } from '~/_helpers'
  10. export default {
  11. computed: {
  12. ...mapState('account', {
  13. currentUser: state => state.user
  14. }),
  15. ...mapState('users', ['user']),
  16. ...mapState('system', ['messages']),
  17. },
  18. created () {
  19. let locale = null;
  20. if (util.userLoggedIn() && util.currentUser().locale) locale = util.currentUser().locale;
  21. this.loadMessages('pre_auth', locale === null ? 'detect' : locale);
  22. let session = this.$route.query.session;
  23. let uri = this.$route.query.uri;
  24. if (!this.$route.query.hasOwnProperty('session') || typeof session === 'undefined' || session === null) {
  25. console.warn('AppLoginPage.created: session parameter is empty, sending to login page');
  26. if (util.userLoggedIn()) {
  27. this.logout({messages: this.messages, errors: this.errors});
  28. }
  29. this.$router.replace('/login');
  30. return;
  31. }
  32. if (typeof uri === 'undefined' || uri === null || (uri.length > 0 && uri[0] !== '/')) {
  33. console.warn('AppLoginPage.created: uri parameter is not empty, sending to login page');
  34. this.$router.replace('/login');
  35. return;
  36. }
  37. let user = util.currentUser();
  38. if (user !== null && session !== user.token) {
  39. this.logout({messages: this.messages, errors: this.errors});
  40. }
  41. if (uri.startsWith('/appLogin')) {
  42. uri = '/';
  43. }
  44. localStorage.setItem(util.USER_KEY, JSON.stringify(user));
  45. this.appLogin({session: session, uri: uri, messages: this.messages, errors: this.errors});
  46. },
  47. methods: {
  48. ...mapActions('account', ['login', 'logout', 'appLogin']),
  49. ...mapActions('system', ['loadSystemConfigs', 'loadMessages']),
  50. },
  51. watch: {
  52. user (u) {
  53. if (u.token) {
  54. this.loadMessages('post_auth', u.locale);
  55. this.loadMessages('apps', u.locale);
  56. }
  57. }
  58. }
  59. };
  60. </script>