使用 PassportJS 如何注销用户

Using PassportJS How do I logout a user

请帮我understand/solve这个。我有一个也使用 Passportjs 的快速服务器 运行。在应用程序的服务器端,在节点模块中,我看到 http-request.js 具有以下内容:

/**
 * Terminate an existing login session.
 *
 * @api public
 */
req.logout =
req.logOut = function() {
  console.log("REQUEST LOGOUT");
  var property = 'user';
  if (this._passport && this._passport.instance) {
    property = this._passport.instance._userProperty || 'user';
  }
  
  this[property] = null;
  if (this._passport) {
    this._passport.instance._sm.logOut(this);
  }
};

如果我的应用程序客户端在单击按钮时调用 req.logout() 方法,那么我该怎么做?我搞不清楚了。请帮助我理解这一点。

这就是我在客户端的注销组件。

import React, {useContext, useEffect} from 'react';
import {UserContext, HeaderContext} from '../../../context';
import mslogin from '../account-status/mslogin.png';

export function MSLogin(){

    passport = require('passport');

    return(
        <div className='login'>
            <div className='logout-container'>
                <div className='logout-box'>
                    <div className='logout-text'>{'Sign out'}</div>
                    <a className='sign-in-link' href='/api/auth/login'
                             onClick = **HOW DO I CALL req.logout()**>
                        <img src={mslogin} className="ms-img" alt="Microsoft" />
                        {'Sign out'} 
                    </a>
                </div>
                <div className='spacer' />
            </div>
        </div>
    );
}

要在服务器端终止用户会话,您可以使用此功能。您必须使用会话 ID 删除端点。如果您使用本地策略来生成和存储会话,此代码将终止该会话,并且用户必须使用新端点再次登录以进行身份​​验证。

try {
            let sid = req.sessionID;
            pushNotification.removeEndPointUsingSessionId(sid);

            req.session.destroy(function (err) {
                req.logout();
            });
        }
        catch (err) {
            winston.error(err);
        }

您可以在[此处][1]进一步了解护照策略。 [1]: http://www.passportjs.org/packages/passport-local/