身份#

从JupyterLab v3.6开始,用户身份建立在IdentityProvider和Jupyter Server v2中引入的端点/api/me之上,作为身份验证的一部分。/api/me端点返回一个包含用户身份及其权限的字典。请查看其文档以了解更多关于Jupyter Server中实现的身份模型的信息。

用户身份API作为服务包的一部分被包含在JupyterLab中,通过向ServiceManager添加一个名为UserManager的新服务来实现。这个新服务定期向/api/me端点请求用户身份,并将信息保存在内存中,直到下一次请求。尽管如此,始终可以通过调用refreshUser方法手动刷新信息。一旦服务准备就绪,就可以通过属性identity访问用户的身份,或者通过订阅信号userChanged来监听变化。

示例:

const extension: JupyterFrontEndPlugin<void> = {
  id: 'jupyterlab-extension',
  autoStart: true,
  activate: (app: JupyterFrontEnd) => {
     const user = app.serviceManager.user;
     user.ready.then(() => {
        console.debug("Identity:", user.identity);
        console.debug("Permissions:", user.permissions);
     });
  }
};