@artsy/passport

中文文档
3.7.0发布于 2022/01/26CommonJS近 30 天下载 6510

连接Arty的普通认证处理器 埃泽尔- 使用 护照。 。 。 .

此软件包已被标记为弃用

Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

中文使用文档
文档目录5 节
  1. 中断更改
  2. 设置
  3. 调整方向
  4. 捐款
  5. 发布到 npm

这回贷已经贬值 代码被转移了! 见 强制 新地点.

艺术护照

CircleCI

给Arthy的普通认证处理器和相关的安全隐患 埃泽尔- 使用 护照在Artsy公司内部使用到 DRY 认证代码.

中断更改

我们把这个应用程序从模块"artsy-passport"迁移到"@artsy/passport",并称之为v1.

设置

确定您先挂起会话、 身体剖析器并开始 @ artsy/ xapp。 。 。 .

app.use express.bodyParser()
app.use express.cookieParser('foobar')
app.use express.cookieSession()
artsyXapp.init -> app.listen()

然后搭乘Artsy Passport通过一个大型的配置散列.

数值表示默认值.

app.use artsyPassport

  CurrentUser: # The CurrentUser Backbone model

  # Pass in env vars
  # ----------------
  FACEBOOK_ID: # Facebook app ID
  FACEBOOK_SECRET: # Facebook app secret
  ARTSY_ID: # Artsy client id
  ARTSY_SECRET: # Artsy client secret
  ARTSY_URL: # SSL Artsy url e.g. https://artsy.net
  APP_URL: # Url pointing back to your app e.g. http://flare.artsy.net
  SEGMENT_WRITE_KEY: # Segment write key to track signup

  # Defaults you probably don't need to touch
  # -----------------------------------------

  # Social auth
  facebookPath: '/users/auth/facebook'
  facebookCallbackPath: '/users/auth/facebook/callback'

  # Landing pages
  loginPagePath: '/log_in'
  signupPagePath: '/sign_up'
  settingsPagePath: '/user/edit'
  afterSignupPagePath: '/personalize'

  # Misc
  logoutPath: '/users/sign_out'
  userKeys: [
    'id', 'type', 'name', 'email', 'phone', 'lab_features',
    'default_profile_id', 'has_partner_access', 'collector_level'
  ]

键是按键的,所以在配置散列中通过是方便的. 最起码的设定可能是这样的:

app.use artsyPassport _.extend config,
  CurrentUser: CurrentUser

说明: 当前用户必须是具有典型的 Backbone 模型 get 财务报告和审定财务报表 toJSON 方法。 。 .

创建指向路径的登录窗体.

h1 Login
pre!= error
a( href=ap.facebookPath ) Login via Facebook
form( action=ap.loginPagePath, method='POST' )
  h3 Login via Email
  input( name='name' )
  input( name='email' )
  input( name='password' )
  input( type="hidden" name="_csrf" value=csrfToken )
  button( type='submit' ) Login

可能还有报名表...

h1 Signup
pre!= error
a( href=ap.facebookPath ) Signup via Facebook
form( action=ap.signupPagePath, method='POST' )
  h3 Signup via Email
  input( name='name' )
  input( name='email' )
  input( name='password' )
  input( type="hidden" name="_csrf" value=csrfToken )
  button( type='submit' ) Signup

也许还有连接账户的设置页面...

h2 Linked Accounts
pre!= error
- providers = user.get('authentications').map(function(a) { return a.provider })
if providers.indexOf('facebook') > -1
  | Connected Facebook
else
  a( href=ap.facebookPath ) Connect Facebook

翻出页面

{ loginPagePath, signupPagePath, settingsPagePath, afterSignupPagePath } = artsyPassport.options

app.get loginPagePath, (req, res) -> res.render 'login'
app.get signupPagePath, (req, res) -> res.render 'signup'
app.get settingsPagePath, (req, res) -> res.render 'settings'
app.get afterSignupPagePath, (req, res) -> res.render 'personalize'

以各种方式访问在Artsy用户中登录的...

在您的服务器侧模板中

h1 Hello #{user.get('name')}

在您的客户端代码中

CurrentUser = require '../models/current_user.coffee'
sd = require('sharify').data

user = new CurrentUser(sd.CURRENT_USER)

在您的路由器中

app.get '/', (req, res) ->
  res.send 'Hello ' + req.user.get('name')

这些形式的用户如果不登录,将无效.

调整方向

如果您执行一个涉及客户端重定向的扇形认证流, 您可能会发现这个帮助器对避免 "打开方向" 攻击.

sanitizeRedirect = require 'artsy-passport/sanitize-redirect'

location.href = sanitizeRedirect "http://artsy.net%0D%0Aattacker.com/"
# Notices the url isn't pointing at artsy.net, so just redirects to /

捐款

添加一个 local.artsy.net 进入您的/etc/hosts

127.0.0.1 localhost
#...
127.0.0.1 local.artsy.net

安装节点模块 yarn 然后写一个 / 配置js 看起来像这样:

module.exports = {
  FACEBOOK_ID: '',
  FACEBOOK_SECRET: '',
  ARTSY_ID: '',
  ARTSY_SECRET: '',
  ARTSY_URL: 'https://api.artsy.net',
  APP_URL: 'http://local.artsy.net:4000',
  // An Artsy user that's linked to Facebook
  ARTSY_EMAIL: '[email protected]',
  ARTSY_PASSWORD: '',
  FACEBOOK_EMAIL: '[email protected]',
  FACEBOOK_PASSWORD: '',
}

然后通过运行检查示例 yarn example 打开 本地主机: 4000。 。 。 .

测试是集成和中相器件单元测试的结合. 运行整个套房的使用 yarn test。 。 。 .

发布到 npm

yarn compile
yarn publish

版本与发布记录

@artsy/passport 共发布 62 个版本,首次发布于 2018/02/17;过去 12 个月发布了 0 个版本。

版本发布日期距今
3.7.0latest2022/01/264 年前
3.7.0--canary.193.653.0canary2022/01/264 年前
3.7.0--canary.193.652.02022/01/264 年前
3.6.02021/12/164 年前
3.5.32021/12/164 年前
3.5.22021/11/035 年前

其他发布通道:alpha → 1.1.8-alpha.0,canary → 3.7.0--canary.193.653.0。

关于 @artsy/passport 的常见问题

@artsy/passport 是什么?

连接Arty的普通认证处理器 埃泽尔- 使用 护照。 。 。 .注意:该包已被作者标记为弃用——Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

如何安装 @artsy/passport?

在项目目录运行 npm install @artsy/passport,或使用 pnpm add / yarn add / bun add。

@artsy/passport 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/artsy__passport 是否存在。

@artsy/passport 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@artsy/passport 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=10.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@artsy/passport 可以商用吗?

@artsy/passport 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@artsy/passport 的下载量有多少?

根据 npm 官方下载统计,@artsy/passport 在 2026/10/07 – 2026/11/05 这 30 天内被下载 6,510 次,日均约 217 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@artsy/passport 还在维护吗?

最新版本 3.7.0 发布于 2022/01/26(4 年前);至今共发布 62 个版本,其中过去 12 个月发布了 0 个;首次发布于 2018/02/17。作者已将其标记为弃用,新项目建议寻找替代方案。