1.1.0 • Published 7 years ago
@sungaoxiang/vue-sso v1.1.0
vue-sso
SSO component for Vue.js.
Table of Contents
Main
dist/
├── vue-sso.js (UMD)
├── vue-sso.min.js (UMD, compressed)
├── vue-sso.common.js (CommonJS, default)
└── vue-sso.esm.js (ES Module)Getting Started
Install
npm install @xkeshi/vue-ssoUsage
- Browser:
window.VueSSO - CommonJS:
var VueSSO = require('@xkeshi/vue-sso') - ES2015:
import VueSSO from '@xkeshi/vue-sso'
Use as a library
import VueSSO from '@xkeshi/vue-sso';
VueSSO.open('/path/to/sso', {
success: () => {
console.log('Login success');
VueSSO.close();
},
});Use as a Vue plugin
<div id="app">
<button type="button" @click="openSSO">Open SSO</button>
</div>import Vue from 'vue';
import VueSSO from '@xkeshi/vue-sso';
Vue.use(VueSSO);
new Vue({
el: '#app',
methods: {
openOSS() {
this.$sso.open('/path/to/sso', {
success: () => {
console.log('Login success');
this.$sso.close();
},
});
},
},
});API Methods
open(url, options)
- url:
- Type:
string - The target SSO url to open.
- Type:
- options (optional):
- Type:
Object
- Type:
- (return value):
- Type:
Promise - The promise will be resolved when the dialog has shown completely.
- Type:
Open the SSO dialog.
All the available options:
| Option | Type | Default | Description |
|---|---|---|---|
| title | string | '登录' | The title of the dialog. |
| width | number | 360 | The width of the dialog. |
| zIndex | number | 1000 | The z-index of the dialog. |
| backdrop | boolean | true | Closes the dialog when the modal is clicked. |
| keyboard | boolean | true | Closes the dialog when the escape key is pressed. |
| success | Function | null | The login success callback. |
| error | Function | null | The login error callback. |
close()
- (return value):
- Type:
Promise - The promise will be resolved when the dialog has hidden completely.
- Type:
Close the SSO dialog.
SSO Config
// In login page
window.addEventListener('message', function (e) {
var errors = document.querySelector('.errors');
var error = errors ? errors.textContent : '';
var body = document.body;
var data = e.data;
if (data && data.type === 'check.sso') {
e.source.postMessage({
type: error ? 'error.sso' : 'process.sso',
message: error,
clientWidth: body.clientWidth,
clientHeight: body.clientHeight,
scrollWidth: body.scrollWidth,
scrollHeight: body.scrollHeight
}, e.origin);
}
});// In login success page
window.addEventListener('message', function (e) {
var body = document.body;
var data = e.data;
if (data && data.type === 'check.sso') {
e.source.postMessage({
type: 'success.sso',
clientWidth: body.clientWidth,
clientHeight: body.clientHeight,
scrollWidth: body.scrollWidth,
scrollHeight: body.scrollHeight
}, e.origin);
}
});Browser Support
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Opera (latest)
- Edge (latest)
- Internet Explorer 11+
Versioning
Maintained under the Semantic Versioning guidelines.
License
1.1.0
7 years ago