护照强制操作
这是一个战略,与 护照JS 与 Force.com平台(指您可以使用Saleforce CRM,您的 Force.com) (原始内容存档于2018-10-22). applications and Database.com.
请注意 截至0.1.0版本,成功认证现在的结果 在标准中 PassportJS 用户配置 对象.
使用量
- 下载此 npm 模块
npm install --save passport-forcedotcom
- 导入到您的应用程序中
var passport = require("passport");
var ForceDotComStrategy = require("passport-forcedotcom").Strategy;
- 使用您的申请资格和资料定义策略
passport.use(
new ForceDotComStrategy(
{
clientID: "{client_id}",
clientSecret: "{client_secret}",
scope: ["id", "chatter_api"],
callbackURL: "https://my.example.com/auth/forcedotcom/callback",
},
function verify(token, refreshToken, profile, done) {
console.log(profile);
return done(null, profile);
}
)
);
- 然后设置一些路线 传递流
app.get("/auth/forcedotcom", passport.authenticate("forcedotcom"), {
display: "page", // valid values are: "page", "popup", "touch", "mobile"
prompt: "", // valid values are: "login", "consent", or "login consent"
login_hint: "", // optional: the user's SalesForce email address or username
state: "", // optional: an aribrary URL encoded string that will get passed back to you
});
// this should match the callbackURL parameter above:
app.get(
"/auth/forcedotcom/callback",
passport.authenticate("forcedotcom", { failureRedirect: "/error" }),
function (req, res) {
res.render("index", checkSession(req));
}
);
而与通常的护照一样,可以更新用户序列化/去序列化.
这个 login_hint 参数可以被 SalesForce用于登录表单上的用户名字段的预集. 不过这似乎不太可靠 见 销售部队OAuth 文档 更多细节.
这个 state 参数是有用的,如果您需要从启动与 SalesForce 的登录到用户重定向到您的应用程序之间保持用户信息。 这样可以避免依赖饼干来维持任何状态信息. 例如,您可以使用这个来跟踪用户在开始登录进程前试图访问的页面. 如果你通过一个 state 绳子就应该是 URL 编码。 。 。 .
创建连接的应用程序
为了使用这个策略,你需要有一个 已连接 应用 在销售部队内部。 见 这个 条款 用于详细且最新的连接 App 创建指令.
提示 :
- 请注意:
client_id称为“消费者钥匙”client_secret在一些UI和 文档. - 请确定将连接的 App 的回调 URL 设置到相同的设置中
b. 《公约》
new ForceDotComStrategy建筑师。 如果你在用的话express,那么您附加的路由也必须对应此 URL(例如.app.get('/auth/forcedotcom/callback', ...) - 获取一个
photos节次 用户 简介 你需要设置api或者说chatter_api创建 Connected App 时的范围.- 图片的 URL 持续 ~ 30 天
- 如果您不需要照片,请提供
skipPhoto: true选项ForceDotComStrategy构造器并仅启用id范围.
示例
有一个实例应用叫做 simple-example 用于: examples/ 文件夹。 这显示了如何使用"ForceDotCom-Passport",并附有许多评论.
本地运行 :
- 打开
app.js内examples/simple-example - 设定
CF_CLIENT_ID, (中文(简体) ),CF_CLIENT_SECRET, (中文(简体) ),CF_CALLBACK_URL并选择,SF_AUTHORIZE_URL, (中文(简体) ),SF_TOKEN_URL以匹配您的连接应用程序的设置. - 通过运行安装 npm 模块
npm install - 运行 :
node app.js - 打开
localhost:3000在浏览器中尝试使用 OAuth 登录.