如何解决在vue之外访问vue-msal插件的暴露对象
我使用vue-msal插件https://www.npmjs.com/package/vue-msal-2#auth-options--required-处理我的应用程序的Microsoft和Azure AD身份验证。
在Vue内部时,我可以很方便地使用this.$msal
来使用诸如signIn()
之类的公开方法,但是我想做的是从Vue外部访问该对象。例如,我想创建如下服务:
import msal from 'vue-msal';
import store from '@/store';
export default {
logIn(): void {
msal.signIn();
},logOut(): void {
msal.signOut();
},isAuthenticated(): boolean {
return store.getters.logged;
},acquireToken(): Promise<string> {
return msal.acquireToken();
},onLoginSuccess(): void {
console.log('login success');
this.acquireToken().then(token => store.commit('login',token));
}
};
但是此处msal
指的是mixin的数据对象,因此与$msal
不同。是否可以通过我的服务访问$msal
?
解决方法
为什么不使用mixin?
import Vue from "vue";
import "./vue-msal.js";
Vue.mixin({
methods: {
signOut() {
this.$msal.signOut();
},isAuthenticated() {
return this.$msal.isAuthenticated();
}
}
});
通过这种方式,您仍然可以实现相同的目标。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。