近年来,企业微信成为企业内部沟通和管理的重要工具。在前端开发中,使用企业微信登录的需求越来越常见。为了满足这一需求,开发人员推出了 egg-passport-workweixin 这个 npm 包。本文将详细讲解该 npm 包的使用方法。
什么是 egg-passport-workweixin
egg-passport-workweixin 是 egg.js 框架中 passport.js 的一个插件,它可以实现企业微信登录功能。使用 egg-passport-workweixin,前端开发人员能够简单地集成企业微信登录,实现方便快捷的用户登录、授权等功能。
使用 egg-passport-workweixin 前,先确保已经使用 egg.js 创建了项目,然后通过 npm 安装 egg-passport-workweixin:
- --- ------- -----------------------
egg-passport-workweixin 的配置方法
在 egg.js 的 config.default.js 中配置 egg-passport-workweixin
在 egg.js 项目的 config.default.js 文件添加以下内容:
-------------------------- - - ---- ----- ----- ----- ------- ----- ----- -------- -------- ----- ----- --------- ------------ ---------------------------- ------------------ ----- -- --- --------- ---- ------ -------------------- - --- --------- --
key
和secret
分别为 企业微信开放平台上应用的corpID
和secret
。agentid
为企业微信应用的agentid
,用于设置授权作用域和展示菜单。callbackURL
认证回调地址。passReqToCallback
决定了参数列表紧随的回调函数是否用请求(req)作为第一个参数的参数。如果设置为 true,当用户登录成功后,将额外地传递一个 req 参数到回调函数中。
配置 egg-passport 和 egg-passport-workweixin
在 egg.js 项目中的 config/plugin.js 中配置 egg-passport 和 egg-passport-workweixin:
---------------- - - ------- ----- -------- --------------- -- -------------------------- - - ------- ----- -------- -------------------------- --
在路由中注册 egg-passport
在 egg.js 项目的 router.js 中注册 egg-passport 的 router:
-----------------------------
在 Controller 中添加方法
在 Controller 中添加方法:
----- ------------- - ----- ---------------------------------- - ---------- ------------------- --- - ----- ---------------- - ----- ---- - -------------- ----- ------------------------------------- - ---- --- -
示例代码
下面是 egg.js 项目的完整示例:
-- ------------------------ ------------ - ------------ -------------------------- - - ---- -------------- ------- -------------- -------- -------------- ------------ ---------------------------- ------------------ ----- -- -- ---------------- ---------------- - - ------- ----- -------- --------------- -- -------------------------- - - ------- ----- -------- -------------------------- -- -- ------------- -------------- - --- -- - ----------------------------- ----------------- -------------------- ------------------------------------ ----------------------- -- -- ---------------------- ----- ---------- - -------------------------- ----- -------------- ------- ---------- - ----- ------------- - ----- ---------------------------------- - ---------- ------------------- --- - ----- ---------------- - ----- ---- - -------------- ----- ------------------------------------- - ---- --- - - -------------- - ---------------
在 Controller 文件夹下创建 workwx_login.nj 文件,在视图中添加登录链接:
------ ------------- ------ -- ------------------------------- ------- -------
在 Controller 文件夹下创建 workwx_callback.nj 文件,在视图中添加登录成功后的页面:
------ ------------- ------ ----------------------------- ---------- ------------------- -------- ----------------- ------- -------
最终效果为:
- 访问 localhost:7001/login,点击“企业微信登录”,跳转到企业微信认证页面。
- 在认证页面中输入企业微信账号和密码,授权后会自动回调到之前设定的callbackURL。
- 回调接口会将用户信息传到 callback 函数中,在 workwxCallback 方法内可以获取用户信息并渲染页面展示。
- 页面展示欢迎语及用户信息。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60055f3781e8991b448dcc73