login.vue 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <template>
  2. <!-- Login 代理页面 -->
  3. <div>
  4. </div>
  5. </template>
  6. <script>
  7. export default {
  8. layout: 'login',
  9. mounted () {
  10. this.crossBefore()
  11. },
  12. methods: {
  13. async crossBefore () {
  14. try {
  15. let { data } = await this.$http.get('/login/crossBefore')
  16. const params = data || {}
  17. this.proxyLogin(params.askUrl, params.askData, params.loginUrl)
  18. } catch (err) {
  19. this.$router.replace('/')
  20. console.log(err)
  21. }
  22. },
  23. proxyLogin (askUrl, askData, loginUrl) {
  24. const crossAfter = this.crossAfter
  25. this.$jsonp(`${askUrl}?askData=${askData}`, function (err, data) {
  26. if (err) throw err
  27. // 判断是否已经登录
  28. if (data.error) {
  29. // 如果未登录,跳转登录界面
  30. window.location.href = loginUrl
  31. } else {
  32. crossAfter(data.content)
  33. }
  34. })
  35. },
  36. async crossAfter (content) {
  37. if (!content && content === '') {
  38. this.$router.replace('/')
  39. }
  40. try {
  41. let { data } = await this.$http.post('/login/crossAfter', {}, { params: { replyTxt: content } })
  42. this.$store.dispatch('loadUserInfo', data)
  43. window.location.href = data.returnUrl || '/'
  44. } catch (err) {
  45. this.$router.replace('/')
  46. console.log(err)
  47. }
  48. }
  49. }
  50. }
  51. </script>