在使用 Node.js 开发 Web 应用的过程中,我们常常需要使用第三方平台的授权登录,如微博、微信等。而 egg-passport-weibo 是一个基于 egg.js 的鉴权插件,可以帮助我们快速地实现微博授权登录功能。本文将对该 npm 包的使用进行详细介绍。
安装 egg-passport-weibo
首先,我们需要安装 egg-passport-weibo 这个 npm 包。在项目根目录下执行以下命令即可:
npm install egg-passport-weibo --save
配置插件
接下来,在项目的 config/plugin.js 文件中添加如下配置:
-- -------------------- ---- ------- ---------------- - - ------- ----- -------- --------------- -- --------------------- - - ------- ----- -------- --------------------- --
这样就启用了 egg-passport 和 egg-passport-weibo 插件。
配置微博开放平台
在使用 egg-passport-weibo 插件之前,我们需要先注册一个微博开放平台应用,并获取该应用的 App Key 和 App Secret。
然后,在项目的 config/config.default.js 中添加如下配置:
passportWeibo: { key: 'your app key', // 从微博开放平台获取的 App Key secret: 'your app secret', // 从微博开放平台获取的 App Secret callbackURL: '/passport/weibo/callback', // 登录回调 URL,需要与微博开放平台应用设置的回调地址一致 },
实现授权登录
完成了上述配置后,我们就可以开始实现授权登录功能了。
首先,在路由文件中添加如下代码:
app.passport.mount('weibo');
这样就会在 /passport/weibo 路径下注册一个路由,用于处理微博授权登录请求。
接着,在控制器文件中添加如下代码:
-- -------------------- ---- ------- ----- ------- - ----- - --- - - ----- ----- ----------------------- - ------ ------- ------- ------------------ --- - ----- --------------- - ----- - ---- --- - - ----- --- - ----- ---- - ----- ---------------------------------- - ---------------- -------- --- ---------------- ------------------ - ----- ----- - ---------------------- ---------- - ---- ----- ---------------------- - -
其中,weibo 方法用于渲染登录页面,weiboCallback 方法用于处理授权登录回调。在 weiboCallback 方法中,我们通过 app.passport.authenticate 方法进行鉴权,并将鉴权后的用户信息赋值给 ctx.state.user 对象,最后重定向到首页。
最后,在模板文件中添加如下代码:
<form method="post" action="{{ action }}"> <button>微博登录</button> </form>
这样,用户就可以点击“微博登录”按钮,跳转到微博授权页面进行授权登录了。
总结
本文介绍了 npm 包 egg-passport-weibo 的使用方法,详细讲解了插件的安装和配置及授权登录实现方法。希望对大家在开发过程中处理第三方平台授权登录有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/55281