Connecting to OpenID services
- 用户给你他的 OpenID(一个 URL)。
- 用户在他的 OpenID 提供方那确认授权,然后重定向回你的服务器。
- 你的服务器收到重定向返回的信息,并与 OpenID 提供方检查信息是否正确。
如果你的用户使用的都是同一个 OpenID 提供方,那么可以忽略第一步(例如你决定全部都使用 Google 账号来登录)。
使用 OpenID,首先需要把 库添加到你的 build.sbt
文件中:
OpenID.verifiedId
需要一个隐式的Request
,并且检查它来建立用户的信息,包含他验证过的 OpenID。它会异步地请求一下 OpenID 服务器以确认信息的真实性,这也是为什么它返回的是一个Future[UserInfo]
。如果信息不正确或者服务器的检查结果不正确(例如重定向 URL 是伪造的),返回的 就会失败。
如果 Future
失败,你可以定义一个回退将用户重定向回登录页面或者返回 BadRequest
。
下面请看一个用例:
你可以从 OpenID 服务器请求一些可选属性或必需属性。要求提供某些必需属性意味着如果用户没有提供的话,他将无法登录你的服务。
你在重定向 URL 中请求扩展属性: