zoukankan      html  css  js  c++  java
  • 同域名下,两个网站通过cookie共享登录注册功能大概思路。

      1 // 说明:本文件代码以vue工程化项目为例,其他类型项目请自行微改!!!
      2 // 导入js-cookie依赖
      3 import Cookies from "js-cookie";
      4 // 操作浏览器本地存储
      5 const storage = window.localStorage;
      6 
      7 // 跳转到官网登录,登录成功后会根据redirect参数,跳回之前的地址。
      8 export function gotoLogin() {
      9   if (process.env.NODE_ENV === "development") {
     10     // 开发环境,需要在本地将官网的项目运行起来
     11     window.location.href =
     12       "http://localhost:8089/front/login/passwordlogin?redirect=" +
     13       window.location.href;
     14   } else {
     15     // 其他环境
     16     window.location.href =
     17       window.location.protocol +
     18       "//" +
     19       window.location.host +
     20       "/front/login/passwordlogin?redirect=" +
     21       window.location.href;
     22   }
     23 }
     24 // 跳转到官网注册,注册成功后会根据redirect参数,跳回之前的地址。
     25 export function gotoRegister() {
     26   if (process.env.NODE_ENV === "development") {
     27     // 开发环境,需要在本地将官网的项目运行起来
     28     window.location.href =
     29       "http://localhost:8089/front/register/inputmsisdn?redirect=" +
     30       window.location.href;
     31   } else {
     32     // 其他环境
     33     window.location.href =
     34       window.location.protocol +
     35       "//" +
     36       window.location.host +
     37       "/front/register/inputmsisdn?redirect=" +
     38       window.location.href;
     39   }
     40 }
     41 // 在本项目中获取用户是否登录及登陆后的用户信息
     42 /*
     43  * 权限相关工具函数
     44  */
     45 // !!!!!!!!!!!!!notice
     46 export const USER_AVATAR = "ticket_avatar";
     47 export const USER_TITLENAME = "ticket_titlename";
     48 export const USER_AUTH = "is_auth";
     49 export const COOKIE_AVATAR = "avatar";
     50 export const COOKIE_NICK = "nick";
     51 export const COOKIE_STATUS = "status";
     52 export const COOKIE_PHONE = "phone";
     53 
     54 // 判断用户是否登录 登录返回值为true,没登录返回值为false
     55 export function isLogin() {
     56   console.log("用户状态cookie:", Cookies.get("status"));
     57   if (
     58     Cookies.get("status") &&
     59     Cookies.get("status") === "0" &&
     60     Cookies.get("is_auth")
     61   ) {
     62     return true;
     63   }
     64   return false;
     65 }
     66 // 获取用户信息:头像,昵称,手机号,是否实名等
     67 export function getBasicUserInfo() {
     68   const u = {};
     69   u.avatar = Cookies.get(COOKIE_AVATAR);
     70   u.nick = Cookies.get(COOKIE_NICK);
     71   u.showPhone = Cookies.get(COOKIE_PHONE);
     72   u.isAuth = Cookies.get(USER_AUTH);
     73   return u;
     74 }
     75 
     76 // 退出登录,调用接口,删除cookie
     77 export function doLogout() {
     78   const url =
     79     window.location.protocol +
     80     "//" +
     81     window.location.host +
     82     "/passportservice/passport/logout";
     83   axios
     84     .get(url)
     85     .then((res) => {
     86       unAuth();
     87       console.log("退出登录", res);
     88       this.$router.push({
     89         name: "login",
     90       });
     91     })
     92     .catch((response) => {
     93       console.log(response);
     94     });
     95 }
     96 /*
     97  * 退出登录,删除cookie及storage
     98  *
     99  * */
    100 export function unAuth() {
    101   const opt = "";
    102 
    103   storage.removeItem(USER_AVATAR);
    104   storage.removeItem(USER_TITLENAME);
    105   storage.removeItem(COOKIE_PHONE);
    106   storage.removeItem(USER_AUTH);
    107   Cookies.remove(COOKIE_AVATAR, opt);
    108   Cookies.remove(COOKIE_NICK, opt);
    109   Cookies.remove(COOKIE_STATUS, opt);
    110   Cookies.remove(COOKIE_PHONE, opt);
    111   Cookies.remove(USER_AUTH, opt);
    112 }
     1 // 官网注册登录页面,获取url中redirect参数,并在登录/注册成功后跳转回redirect对应的url
     2 
     3 // 1, 获取url中redirect参数的值,保存到浏览器sessionStorage中
     4 mounted() {
     5   const redirectURL = this.$route.query.redirect
     6   if (redirectURL) {
     7     window.sessionStorage.setItem('redirectUrl', redirectURL)
     8   }
     9 }
    10 
    11 // 2, 登录/注册成功后,判断sessionStorage中是否有redirectUrl,存在的话跳转redirectUrl,不存在则跳转到官网首页
    12 const redirectURL = window.sessionStorage.getItem("redirectUrl");
    13 if (redirectURL && redirectURL.indexOf("login") === -1) {
    14   window.location.href = redirectURL;
    15   window.sessionStorage.removeItem("redirectUrl");
    16 } else {
    17   return this.$router.push("/home");
    18 }
  • 相关阅读:
    PHP调用WCF提供的方法
    关于git报 warning: LF will be replaced by CRLF in README.md.的警告的解决办法
    vue中引入mui报Uncaught TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them的错误
    微信小程序报Cannot read property 'setData' of undefined的错误
    Vue那些事儿之用visual stuido code编写vue报的错误Elements in iteration expect to have 'v-bind:key' directives.
    关于xampp中无法启动mysql,Attempting to start MySQL service...的解决办法!!
    PHP的环境搭建
    新手PHP连接MySQL数据库出问题(Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES))
    手机号码、获得当前时间,下拉框,填写限制
    团队作业(五):冲刺总结
  • 原文地址:https://www.cnblogs.com/lml2017/p/15508397.html
Copyright © 2011-2022 走看看