export interface AuthorizationParams{
    redirect_uri: string
}
export interface AuthzOption{
    domain: string,
    clientId: string,
    authorizationParams: AuthorizationParams
}
export interface AuthzLogoutOption{
    returnTo:string
}
let authzOption:AuthzOption = {
    domain: "登录服务地址",
    clientId: "登录项目id",
    authorizationParams: {
        redirect_uri: "回调地址"
    }
}
/**
 * 注册全局
 * @param opt{}
 * {
 *   domain: "登录服务地址",
 *   clientId: "登录项目id",
 *   authorizationParams: {
 *     redirect_uri: "回调地址"
 *   } 
 * }
 * @returns app.use(authzCreate(opt)) 
 */
const authzCreate = function (opt:AuthzOption) {
    authzOption = opt;
    return {
        install(app:any, options:object) {}
    }
}
/**
 * 登录
 */
function login() {
    console.log(authzOption, "登录")
}
/**
 * 退出登录
 * @param {}
 * { 
 *      returnTo: "返回地址"
 * }
 */
function logout(logoutOpt:AuthzLogoutOption) {
    console.log(logoutOpt, authzOption, "登出")
}
/**
 * 是否登录
 */
function isAuthenticated() {
    console.log(authzOption, "是否登录")
}
/**
 * 简要
 */
const profile = {
    authzOption
}
export { authzCreate,login,logout,isAuthenticated,profile };