sso.js 1.9 KB

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