Skip to content

raywenderlich OAuth 学习笔记 #101

@ApolloZhu

Description

@ApolloZhu

目的

  • 通过 token,而不是用户名和密码实现用户身份验证
  • 可以限制能够访问得到的数据的范围来提升安全性

方法

  • 流程:用户登录第三方网站,输入用户名密码,第三方返回 token
  • 实现:使用 OAuth Swift 框架(做了很好的抽象

例子:Strava

从第三方注册 app,获取信息

image

使用 OAuth Swift:

image

配置 Deep Link 回 App:

image

打开 App 时完成验证,关闭 web view

image

把 access token 传入请求的 authorization header 里:

image

扩展阅读

  • User defaults 不是存储 token 的好地方,应该使用 keychain,没有找视频教程,可以看文章
  • OAuth 服务端的实现参考 https://docs.vapor.codes/3.0/auth/api/
    • 不要存储明文密码到数据库
    • Ray 其他的 vapor 视频里提到了 Turnstile,有兴趣可以仔细研究什么情况
  • bilibili 现在使用的是 session 式的用户认证(随 cookie 发送用户当前 session 信息)

参考资料

OAuth2: https://www.raywenderlich.com/5034-accessing-data-using-oauth

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions