sso.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import Vue from 'vue'
  2. import { ACCESS_TOKEN } from "@/store/mutation-types"
  3. import store from '@/store'
  4. /**
  5. * 单点登录
  6. */
  7. const init = (callback) => {
  8. if (window.location.href.indexOf("/activiti/check/")>-1){
  9. loginSuccess(callback);
  10. }else{
  11. let token = Vue.ls.get(ACCESS_TOKEN);
  12. let st = getUrlParam("ticket");
  13. var sevice = "http://"+window.location.host+"/";
  14. // console.log("-------单点登1录开始-------",st);
  15. // console.log("-------单点登2录开始-------",sevice);
  16. if(token){
  17. loginSuccess(callback);
  18. }else{
  19. if(st){
  20. validateSt(st,sevice,callback);
  21. }else{
  22. var serviceUrl = encodeURIComponent(sevice);
  23. window.location.href = window._CONFIG['casPrefixUrl']+"/login?service="+serviceUrl;
  24. }
  25. }
  26. console.log("-------单点登录结束-------");
  27. }
  28. };
  29. const SSO = {
  30. init: init
  31. };
  32. function getUrlParam(paraName) {
  33. var url = document.location.toString();
  34. var arrObj = url.split("?");
  35. // console.log("-------单点登3录开始-------",url);
  36. // console.log("-------单点登4录开始-------",arrObj);
  37. if (arrObj.length > 1) {
  38. var arrPara = arrObj[1].split("&");
  39. var arr;
  40. for (var i = 0; i < arrPara.length; i++) {
  41. arr = arrPara[i].split("=");
  42. if (arr != null && arr[0] == paraName) {
  43. return arr[1];
  44. }
  45. }
  46. return "";
  47. }
  48. else {
  49. return "";
  50. }
  51. }
  52. function validateSt(ticket,service,callback){
  53. let params = {
  54. ticket: ticket,
  55. service:service
  56. };
  57. store.dispatch('ValidateLogin',params).then(res => {
  58. //this.departConfirm(res)
  59. if(res.success){
  60. loginSuccess(callback);
  61. }else{
  62. var sevice = "http://"+window.location.host+"/";
  63. // var sevice = "http://www.myfitt.cn";
  64. var serviceUrl = encodeURIComponent(sevice);
  65. window.location.href = window._CONFIG['casPrefixUrl']+"/login?service="+serviceUrl;
  66. }
  67. }).catch((err) => {
  68. console.log(err);
  69. //that.requestFailed(err);
  70. });
  71. }
  72. function loginSuccess (callback) {
  73. callback();
  74. }
  75. export default SSO;